python判断域名是否合法|校验域名
- 域名以点号分隔成多个字符串。
- 单个字符串由各国文字的特定字符集、字母、数字、连字符(-)组成,字母不区分大小写,连字符(-)不得出现在字符串的头部或者尾部。
- 单个字符串长度不超过63个字符。
- 字符串间以点分割,且总长度(包括末尾的点)不超过254个字符。
import redef is_valid_domain(domain):"""校验域名,只支持英文域名"""if len(domain) > 254:return Falseif not re.match("^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$", domain):return Falsereturn Trueif __name__ == '__main__':domains = ['hello.user.yuedu.baidu.com', 'baidu.com', 'www.baidu.com', 'https://www.baidu.com', 'https://baidu.com','http://www.baidu.com', 'baidu@com', '1.1.1.1', 'baidu1.com.1', 'baidu.com.', '.baidu.com', 'baidu. com','baidu.com@', 'baid%u.com', 'baidu',]for d in domains:a = is_domain_valid(d)print(d, a)