Dlaczego ten adres URL z nadmierną liczbą poprzedzających kropek przekształca się w adres IP?

31

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

Które, po umieszczeniu w chrome, wyświetla podgląd adresu URL http://69.172.200.235/, który przekierowuje (przez kod odpowiedzi serwera zewnętrznego 3XX) www.test.com, ale jest to poza zakresem tego, co próbuję ustalić.

W jaki sposób tak dziwny adres URL, jak powyżej, przekształca się w adres IP? Czy to reguła formatowania?

Shadowjonathan
źródło
2
Zauważ, że ten sam adres URL bez kropek działa również w Chrome: http://1168951531. Ale to nasuwa pytanie, dlaczego Chrome ignoruje kropki?
wjandrea
6
@wjandrea Domyślam się, że Chrome interpretuje je jako subdomeny i tak naprawdę ich nie ignoruje. Możesz to sprawdzić, przeglądając nagłówek hosta żądania wysłanego przez chrome.
Christoph
1
Trochę stycznej, ale adresy Gmaila pozwalają dodawać tyle kropek, ile chcesz, bez powodowania problemów, a także + z dowolnym tekstem po nim. Tak [email protected]będzie również odbierać pocztę wysyłaną do [email protected]czy [email protected]- a korzyści daje różne e-maile do różnych miejsc, aby zobaczyć, kto oddanie się na listach antyspamowych lub konfiguracji reguł do obsługi poczty przychodzącej różne sposoby, w zależności od „Do” adres. ( Więcej ) Lub, [email protected] jest teraz kylesmom + is.a.big.fa ...
ashleedawg
Za to, co jest warte, połączenie Firefoxa i kałamarnicy nie pozwala na to; Firefox przekazuje kropki dosłownie i błędy kałamarnicy, ponieważ jest to nieprawidłowy format adresu URL. Wygląda to na błąd Chrome, a może specyfikacja pustych domen jest niejednoznaczna?
Paul Gear

Odpowiedzi:

44

Chrome interpretuje liczbę 1168951531 jako liczbę dziesiętną, która w postaci szesnastkowej to 45ACC8EB. 45ACC8EB w systemie szesnastkowym jest taki sam jak kropkowany dziesiętny 69.172.200.235, jeśli weźmiesz każdą parę cyfr szesnastkowych jako jedną liczbę dziesiętną.

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

Krótka odpowiedź: to czysta dziesiętna reprezentacja tego samego adresu IP.

Steven Davies
źródło
4
Firefox też dokonuje interpretacji (bez kropek), ale nie Edge.
JAB
11
Typowym kodem źródłowym do rozwiązania nazwy hosta jest najpierw sprawdzenie, czy jest to adres IP (np. Z inet_addr()), a jeśli nie, przekazanie go do takiej funkcji, gethostname()która przesłuchuje serwery DNS (i odczytuje hostsplik). Przekazywanie dziesiętnej reprezentacji adresu IP, jak wyjaśniono w odpowiedzi powyżej, jest całkowicie legalne w większości implementacji. Mogę wpisać ping 1168951531terminal, który faktycznie pinguje zamierzony adres. Dziwnie robi się ze wszystkimi kropkami z przodu, ale być może Chrome usuwa je przed próbą rozwiązania.
Ale
1
Warto zauważyć, że zarówno Chrome, jak i Firefox akceptują adres URL bez kropek. ( http://1168951531)
Stevoisiak
3

Jest to długa reprezentacja adresu IPv4 adresu IP 69.172.200.235. Który mapuje do domeny www.test.com.

Gothrek
źródło
4
Czy możesz wyjaśnić, co to jest „długa reprezentacja”?
Filip
2
Lepiej to wyjaśnić inną odpowiedzią, ale nadal sprowadza się do tego samego.
Gothrek
9
Prawdopodobnie powinna to być „ longreprezentacja”
n0rd