Rozważ listę adresów IP podaną w nagłówku HTTP X-Forwarded-For :
10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43
Chciałbym wiedzieć, który jest pierwszym publicznie dostępnym adresem na tej liście. Mogę dość łatwo je przejrzeć, ale jak mogę stwierdzić, które są publicznie dostępne? Wydaje mi się (moje niewprawne oko), że 10.0.0.142
jest stacją roboczą, 192.168.0.10
jest wewnętrznym serwerem proxy i 212.43.234.12
jest publicznie dostępnym adresem przesyłanym przez serwer proxy pod adresem 54.23.66.43
. Czy jest jakiś sposób na obliczenie tego w kodzie?
Moją pierwszą intuicją jest to, że adresy zaczynające się od 10.
lub 192.
nie są publicznie dostępne, ale http://simplesniff.com ujawnia mój domowy adres IP 192.117.111.61
. Czy istnieje formuła określająca, które adresy są publiczne, a które prywatne? Zauważ, że nawet próba pingowania danego serwera może nie pomóc, ponieważ niektóre serwery nie odpowiedzą na ping, a także może istnieć adres w mojej sieci lokalnej, który również pasuje do adresu wewnętrznego.
źródło
Odpowiedzi:
RFC 1918 definiuje zakresy prywatnych adresów IP. Spójrz tutaj.
Z tego dokumentu:
Prywatna przestrzeń adresowa
Urząd przydzielania numerów internetowych (IANA) zarezerwował następujące trzy bloki przestrzeni adresowej IP dla prywatnych internetów:
10.0.0.0 - 10.255.255.255 (prefiks 10/8)
172.16.0.0 - 172.31.255.255 (prefiks 172.16 / 12)
192.168.0.0 - 192.168.255.255 (prefiks 192.168 / 16)
źródło
127.0.0.0/16
(i być może więcej) nie ma na tej liście.Oprócz oryginalnej przestrzeni RFC 1918 (która jest teraz zaktualizowana do RFC6890 ), istnieje kilka innych bloków, takich jak 192.0.2.0, które nie są ogłaszane publicznie. Ponadto możliwe jest, że ktoś ma prawidłową przestrzeń IPv4, która po prostu nie jest ogłaszana w publicznym Internecie.
Najprostszą rzeczą do zrobienia jest
telnet route-views.oregon-ix.net
zalogowanie sięrviews
i poszukiwanie siebie ... na przykład jest to trochę „192” miejsca ogłoszonego przez AS7018 (AT&T) ...Z drugiej strony zobaczysz, że nigdzie nie można znaleźć 192.0.2.0/24 (ref RFC6890 ) ...
Ani 169.254.0.0/16 (lub dłużej) ...
źródło
Team Cymru zapewnia bogon odwołanie zarówno do IPv4, jak i IPv6, którego można użyć do odfiltrowania nieprzypisanych / zarezerwowanych / prywatnych adresów IP - jest oferowany zarówno jako prosta lista dobrze znanych prefiksów, jak również na znacznie większej liście, która zawiera przestrzeń, która jest jak dotąd nieprzypisane przez RIR.
Działają również na serwerze Bogon BGP, na który można poprosić o darmową komunikację równorzędną - nieocenione, jeśli nie można uruchomić w Internecie strefy wolnej od domyślnych.
źródło
Istnieje wiele zakresów zarezerwowanych dla różnych przypadków użycia. IANA ma autorytatywną i wyczerpującą listę . Obejmuje RFC1918, RFC6761, a także nowsze rezerwacje, takie jak blok CGN 100,64 / 10. Jeśli znajdziesz tam jakieś adresy, prawdopodobnie są one w jakiś sposób wykorzystywane w sieci prywatnej i powinny zostać odrzucone na rzecz innych w poszukiwaniu pierwszego adresu publicznego.
źródło