web-dev-qa-db-ja.com

ホスト名が数字で始まることは有効ですか?

ホスト名が数字で始まることは有効ですか?例えば_8server_

RFC 112 を読むと、これは有効なホスト名であるように見えます。ただし、サフィックスがある場合にホスト名が数字でのみ開始できるかどうかは不明です。 _8server.com_

この質問の起源は、Google Guavaライブラリ( Javadoc )のInternetDomainName.isValid("8server");が入力を拒否することです。 Guava Discuss グループにも特定の質問を投稿しました。

45
Mark

RFC 1123は、DNSに置き換えられたHostname Server Protocol(- RFC 95 で説明)のレガシーを指定するRFC 952の制約を緩和します。したがって、完全に数値のホスト名はこれらのRFCで有効です。

RFC 1123自体は、IPとホスト名の構文解析の結果について説明しています。

そのような識別区切り文字なしでドット付き10進数を入力できる場合は、完全な構文チェックを行う必要があります。これは、ホストドメイン名のセグメントが数字で開始できるようになり、完全に数値である(セクション6.1.2.4を参照)。ただし、有効なホスト名には、ドットで区切られた10進数の形式#。#。#。#を含めることはできません。これは、少なくとも最上位のコンポーネントラベルがアルファベットであるためです。

ただし、実装の問題のため、有効なホスト名を選択するためのガイドラインは RFC 1178 で提供されています。これらの実装の多くは数値のホスト名を正しく認識せず、場所に関係なく少なくとも1つの非数値文字が含まれるまで、IPであるかのようにそれらを解析しようとします。

また、実装はRFC 952の他の元の制約を常に順守するわけではなく、たとえば、ホスト名の末尾にマイナス記号またはピリオドを付けることができます。

DNSは、ホスト名のこれらの元の仕様を保持し、アンダースコア( RFC 2782 )のサポートを追加しました。

更新コメントで要求されているように、文の説明:ただし、有効なホスト名にドット付き10進表記を含めることはできません#。#。#。#(少なくとも最上位のコンポーネントラベルは英字になるため)。つまり、トップレベルのドメイン名はalphabeticでなければならず、完全修飾ホスト名をIPv4アドレスと混同することはありません。このアイデアは、DNSの RFC 3696 によって明確化され、not all-numericに変更されました。わずかな違いに注意してください。

33
Xavier Lucas

元々、ホスト名は数字またはアンダースコア( RFC 952 )で始めることはできませんでしたが、前述のように、新しい仕様RFC 1123はそれを許可します。

IsValid()の呼び出しに関して、この場合、完全なドメイン名をパラメーターで渡す必要があります:InternetDomainName.isValid("8server.com");

13

はい。 RFC 1123は明らかにそれを許可しており、ここに例があります:

http://9292.nl/

オランダの公共交通機関のルートプランナーです。

9