Mengapa URL ini dengan titik-titik sebelumnya yang berlebihan diselesaikan ke alamat IP?

31

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

Yang, ketika dimasukkan ke dalam chrome, preview ke URL http://69.172.200.235/, yang dialihkan (oleh kode respon server eksternal 3XX) www.test.com, tetapi itu berada di luar ruang lingkup dari apa yang saya coba cari tahu.

Bagaimana URL aneh seperti di atas menyelesaikan ke alamat IP? Apakah ini aturan pemformatan?

Shadowjonathan
sumber
2
Perhatikan bahwa URL yang sama tanpa titik juga bekerja di Chrome: http://1168951531. Tapi itu menimbulkan pertanyaan, mengapa Chrome mengabaikan titik-titik?
wjandrea
6
@wjandrea Saya kira Chrome mengartikannya sebagai subdomain dan sebenarnya tidak mengabaikannya. Anda dapat memeriksanya dengan melihat Host-header permintaan yang dikirimkan chrome.
Christoph
1
Sedikit menyinggung, tetapi alamat Gmail memungkinkan Anda untuk menambahkan titik sebanyak yang Anda inginkan, tanpa menyebabkan masalah, dan juga tanda + dengan teks apa pun setelah itu yang Anda inginkan. Jadi [email protected]juga akan menerima email yang dikirim ke [email protected]atau [email protected]- dan manfaatnya adalah memberikan email yang berbeda ke situs yang berbeda untuk melihat siapa yang menempatkan Anda di daftar spam, atau membuat aturan untuk menangani email yang masuk dengan cara yang berbeda tergantung pada alamat "Ke". ( Lebih banyak ) Atau, [email protected] sekarang menjadi kylesmom + is.a.big.fa ...
ashleedawg
Untuk apa nilainya, kombinasi Firefox dan squid tidak memungkinkan ini; Firefox melewati titik-titik melalui verbatim, dan kesalahan squid karena ini adalah format URL yang tidak valid. Jadi ini sepertinya bug Chrome, atau mungkin spek mengenai domain kosong itu ambigu?
Paul Gear

Jawaban:

44

Chrome menafsirkan angka 1168951531 sebagai angka desimal, yang bila direpresentasikan dalam heksadesimal adalah 45ACC8EB. 45ACC8EB dalam hex sama dengan desimal bertitik 69.172.200.235, ketika Anda mengambil setiap pasangan digit hex sebagai satu angka desimal.

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

Jawaban singkat: Ini adalah representasi desimal murni dari alamat IP yang sama.

Steven Davies
sumber
4
Firefox juga melakukan interpretasi (tanpa titik), tetapi bukan Edge.
JAB
11
Kode sumber khas untuk menyelesaikan nama host adalah dengan terlebih dahulu memeriksa apakah itu adalah alamat IP (misalnya dengan inet_addr()) dan jika tidak, berikan ke fungsi seperti gethostname()itu yang menginterogasi server DNS (dan membaca hostsfile). Melewati representasi desimal dari alamat IP, seperti yang dijelaskan dalam jawaban di atas, sangat sah di sebagian besar implementasi. Saya bisa mengetikkan ping 1168951531terminal, dan itu sebenarnya ping alamat yang dituju. Menjadi lebih aneh dengan semua titik di depan, tetapi mungkin Chrome menghapusnya sebelum mencoba resolusi.
Ale
1
Perlu dicatat bahwa Chrome dan Firefox menerima URL tanpa titik. ( http://1168951531)
Stevoisiak
3

Ini adalah representasi panjang dari alamat ipv4 dari ip 69.172.200.235. Yang memetakan ke domain www.test.com.

Gothrek
sumber
4
Bisakah Anda menjelaskan apa itu "representasi panjang"?
Philipp
2
Lebih baik dijelaskan oleh jawaban yang lain, tetapi masih mengarah pada hal yang sama.
Gothrek
9
Mungkin harus " longrepresentasi"
n0rd