如何使用Python验证域名是否符合RFC 1035?

gle*_*783 9 python rfc1035

我正在尝试编写一些代码,这些代码将采用"假定的"域名,并将根据RFC 1035对其进行验证.例如,它需要满足以下规则:

  • 域名不超过253个字符
  • 域字符集[a-z0-9\-]仅为(输入时将域小写)
  • 域名不能包含两个连续的破折号(例如:google--com.com)
  • 最大子域限制为127

我搜索了各种Python模块(例如:tldextract),但无济于事.

如何验证域名是否符合RFC 1035?

Kir*_*ser 5

吻:

import string

VALID_CHARS = string.lowercase + string.digits + '-.'

def is_valid_domain(domain):
    if not all(char in VALID_CHARS for char in domain.lower()):
        return False
    if len(domain) > 253:
        return False
    if '--' in domain:
        return False
    if '..' in domain:
        return False
    return True
Run Code Online (Sandbox Code Playgroud)

有时候聪明,但这似乎不是其中之一.

  • 我知道这是偏离主题的,但为什么是downvote?我按照要求回答了问题并尝试提供清晰,可读的示例代码.我确定有一些它没有处理的边缘情况(并且OP没有指定),但请在downvoting之前留下反馈.我会帮你做同样的礼貌. (3认同)