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

标签 python rfc1035

我正在尝试编写一些代码来接收“假设的”域名并根据 RFC 1035 对其进行验证。例如,它需要满足以下规则:

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

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

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

最佳答案

亲吻:

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

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

关于python - 如何使用 Python 验证域名是否符合 RFC 1035?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954756/

相关文章:

python - 如何在 python 中使用正则表达式捕获和分离文本

c - 在 TXT 或 SPF 记录中写入超过 255 个字符的数据

dns - 附加部分中的 CNAME 记录

dns - DNS 名称的最大长度是多少

python - 为什么 matplotlib 中的图例不能正确显示颜色?

python - Django 中的 "slug"是什么?

python - python 西类牙语编码有问题吗?

Python:基于变量命名实例