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)