9

「想定された」ドメイン名を受け取り、RFC 1035 に従って検証するコードを作成しようとしています。たとえば、次のルールを満たす必要があります。

  • ドメインは合計 253 文字以下で構成されます
  • ドメイン文字セット[a-z0-9\-]のみ (入力時にドメインを小文字にします)
  • ドメインに 2 つの連続したダッシュを含めることはできません (例: google--com.com)
  • サブドメインの最大数は 127 です

さまざまな Python モジュール (例: tldextract) を検索しましたが、役に立ちませんでした。

ドメイン名が RFC 1035 に準拠していることを確認するにはどうすればよいですか?

4

2 に答える 2

5

接吻:

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

賢くなる時もありますが、これはそうではないようです。

于 2014-01-07T05:01:04.043 に答える