ドットが先行するこのURLがIPアドレスに解決されるのはなぜですか?


31

http://.................1168951531

これは、クロムに入れるとURLにプレビューし、http://69.172.200.235/(外部サーバーの応答コードによって3XX)にリダイレクトしますが、それwww.test.comは私が理解しようとしているものの範囲外です。

上記のような奇妙なURLはIPアドレスにどのように解決しますか?これはフォーマット規則ですか?


2
Chromeでもドットなしの同じURLが機能することに注意してくださいhttp://1168951531。しかし、それは疑問を招きます、なぜChromeはドットを無視するのですか?
wjandrea

6
@wjandrea Chromeはそれらをサブドメインとして解釈し、実際には無視しないと思います。chromeが送信するリクエストのHost-headerを見ると確認できます。
クリストフ

1
少し接線ですが、Gmailアドレスを使用すると、問題を引き起こすことなく、必要な数のドットを追加できます。また、必要なテキストに+を追加することもできます。だから、abcd@gmail.comまたメールが送信されますに送信されたa.b.c.d@gmail.comabcd+junkmail@gmail.com-との利点は、スパムリストにあなたを置く、またはアドレス「へ」に応じて、受信メールの異なる方法で処理するためにルールを設定したユーザーを確認異なる部位に異なる電子メールを与えています。(その他)または、kylesmom @ gmail.comはkylesmom + is.a.big.faになりました...
ashleedawg

Firefoxとsquidの組み合わせでは、これが価値のあることではありません。Firefoxは無効なURL形式であるため、ドットを逐語的に通し、squidエラーを渡します。これはChromeのバグのように見えますか、空のドメインに関する仕様があいまいです?
ポール・ギア

回答:


44

Chromeは、番号1168951531を10進数として解釈しています。16進数で表すと45ACC8EBです。16進数の45ACC8EBは、16進数の各ペアを1つの10進数とすると、ドット付き10進数の69.172.200.235と同じです。

45 -> 69
AC -> 172
C8 -> 200
EB -> 235

簡単な答え:それは同じIPアドレスの純粋な10進数表現です。


4
Firefoxは(ドットなしの)解釈も行いますが、Edgeは解釈しません。
JAB

11
ホスト名を解決するための一般的なソースコードは、まずIPアドレス(たとえば、inet_addr())であるかどうかを確認し、そうでない場合は、gethostname()DNSサーバーに問い合わせる(およびhostsファイルを読み取る)などの関数に渡します。上記の回答で説明したように、IPアドレスの10進表現を渡すことは、ほとんどの実装で完全に合法です。私が入力できるping 1168951531ターミナルで、その実際のping意図アドレス。すべてのドットが前にあると奇妙になりますが、Chromeは解像度を試す前にそれらを削除している可能性があります。
エール

1
ChromeとFirefoxの両方がドットなしのURLを受け入れることは注目に値します。(http://1168951531
Stevoisiak

3

これは、ip 69.172.200.235のipv4アドレスの長い表現です。これはwww.test.comドメインにマッピングされます。


4
「長い表現」とは何か説明できますか?
フィリップ

2
それは他の答えによってよりよく説明されますが、それでも同じ事に要約されます。
ゴスレク

9
おそらく「あるべきlong表現」
n0rd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.