小编典典

验证主机名字符串

python

跟进正则表达式以匹配主机名或IP地址?
并使用对有效主机名的限制作为参考,在Python中匹配/验证主机名/
fqdn(完全限定域名)的最易读,简洁的方法是什么?我在下面的尝试中已经回答过,欢迎改进。


阅读 135

收藏
2020-12-20

共1个答案

小编典典

import re
def is_valid_hostname(hostname):
if len(hostname) > 255:
return False
if hostname[-1] == “.”:
hostname = hostname[:-1] # strip exactly one dot from the right, if present
allowed = re.compile(“(?!-)[A-Z\d-]{1,63}(?<!-)$”, re.IGNORECASE)
return all(allowed.match(x) for x in hostname.split(“.”))

确保每个细分市场

  • 包含至少一个字符,最多63个字符
  • 仅包含允许的字符
  • 不以连字符开头或结尾。

它还避免了双负号(not disallowed),并且如果hostname以结束.,也可以。如果hostname结尾超过一个点,它将(并且应该)失败。

2020-12-20