【Python】判断域名是否合法

python判断域名是否合法|校验域名

  1. 域名以点号分隔成多个字符串。
  2. 单个字符串由各国文字的特定字符集、字母、数字、连字符(-)组成,字母不区分大小写,连字符(-)不得出现在字符串的头部或者尾部。
  3. 单个字符串长度不超过63个字符。
  4. 字符串间以点分割,且总长度(包括末尾的点)不超过254个字符。
import re


def is_valid_domain(domain):
    """校验域名,只支持英文域名"""
    if len(domain) > 254:
        return False
    if not re.match("^((?!-)[A-Za-z0-9-]{1,63}(?, domain):
        return False

    return True


if __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)

你可能感兴趣的:(python)