Betrachten Sie eine Liste von IP-Adressen, wie sie im X-Forwarded-For-HTTP-Header angegeben sind :
10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43
Ich würde gerne wissen, welche Adresse in dieser Liste die erste öffentlich zugängliche ist. Ich kann sie leicht genug einsehen, aber wie kann ich feststellen, welche öffentlich zugänglich sind? Es scheint mir (mein ungeübtes Auge), dass 10.0.0.142
es sich um eine Workstation, 192.168.0.10
einen internen Proxy und 212.43.234.12
eine öffentlich zugängliche Adresse handelt, die über den Proxy an weitergeleitet wird 54.23.66.43
. Gibt es eine Möglichkeit, dies im Code zu berechnen?
Meine erste Intuition ist, dass Adressen, die mit 10.
oder 192.
nicht öffentlich zugänglich sind, http://simplesniff.com meine private IP-Adresse anzeigt 192.117.111.61
. Gibt es eine Formel zur Bestimmung, welche Adressen öffentlich und welche privat reserviert sind? Beachten Sie, dass selbst der Versuch, einen Ping-Befehl an den betreffenden Server zu senden, möglicherweise nicht hilft, da einige Server nicht auf den Ping-Befehl reagieren. Außerdem gibt es möglicherweise eine Adresse in meinem lokalen Netzwerk, die ebenfalls mit der internen Adresse übereinstimmt.
quelle
Antworten:
RFC 1918 definiert private IP-Adressbereiche. Schau mal hier.
Aus diesem Dokument:
Privater Adressraum
Die Internet Assigned Numbers Authority (IANA) hat die folgenden drei Blöcke des IP-Adressraums für private Internets reserviert:
10.0.0.0 - 10.255.255.255 (10/8 Präfix)
172.16.0.0 - 172.31.255.255 (172.16 / 12 Präfix)
192.168.0.0 - 192.168.255.255 (192.168 / 16 Präfix)
quelle
127.0.0.0/16
(und vielleicht noch mehr) nicht auf dieser Liste stehen.Neben dem ursprünglichen RFC 1918-Space (der jetzt auf RFC 6890 aktualisiert wird ) gibt es mehrere andere Blöcke wie 192.0.2.0, die nicht öffentlich angekündigt werden. Darüber hinaus ist es möglich, dass jemand über einen gültigen IPv4-Speicher verfügt, der im öffentlichen Internet nicht angekündigt wird.
Am einfachsten ist es
telnet route-views.oregon-ix.net
, sich anzumeldenrviews
und sich selbst zu überzeugen. Dies ist beispielsweise ein von AS7018 (AT & T) angekündigter Platz "192".Andererseits werden Sie feststellen, dass 192.0.2.0/24 (ref RFC6890 ) nirgends zu finden ist ...
Noch ist 169.254.0.0/16 (oder länger) ...
quelle
Team Cymru bietet eine Scheinreferenz für IPv4 und IPv6, mit der Sie nicht zugewiesene / reservierte / private IP-Adressen herausfiltern können. Sie wird sowohl als einfache Liste für bekannte Präfixe als auch in einer viel größeren Liste mit Speicherplatz angeboten noch nicht von RIRs zugewiesen.
Sie betreiben auch einen BGP-Bogon-Server, für den Sie ein kostenloses Peering anfordern können - von unschätzbarem Wert, wenn Sie keine standardfreie Zone für das Internet einrichten können.
quelle
Es gibt eine Reihe von Bereichen, die für verschiedene Anwendungsfälle reserviert sind. IANA hat die maßgebliche und umfassende Liste . Es enthält RFC1918, RFC6761 sowie neuere Reservierungen wie den 100.64 / 10 CGN-Block. Wenn Sie dort Adressen finden, werden diese wahrscheinlich in einem privaten Netzwerk verwendet und sollten bei der Suche nach der ersten öffentlichen Adresse zugunsten der anderen Adressen verworfen werden.
quelle