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?


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 abcd@gmail.combędzie również odbierać pocztę wysyłaną do a.b.c.d@gmail.comczy abcd+junkmail@gmail.com- 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, kylesmom@gmail.com 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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.