Wie kann ich nach einer gültigen öffentlichen IP-Adresse suchen?


39

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.142es sich um eine Workstation, 192.168.0.10einen internen Proxy und 212.43.234.12eine ö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.


3
Ich möchte auch darauf hinweisen, dass einige Unternehmen den öffentlichen Adressraum intern missbrauchen , auch wenn eine Adresse routingfähig ist. Ich kenne einen sehr großen und bekannten Unternehmensnamen aus erster Hand, der unerklärlicherweise AFRINIC- und AT & T IPv4-Speicherplatz in seinem internen Unternehmensnetzwerk anstelle von RFC1918-Speicherplatz verwendet ... sie vertreten den gesamten HTTP-Verkehr ... und X-Forwarded -Für Header aus ihrem Unternehmensnetzwerk wird der öffentliche Raum angezeigt, den sie eigentlich nicht besitzen.
Mike Pennington

@ MikePennington Erfahrung aus erster Hand dies auch, außer sie verwendeten APNIC-Nummern. Könnte auch ein Problem verursachen, wenn ein interner Computer (insbesondere diejenigen, die das Ziel in ihrem Subnetz finden) versucht, auf einen der öffentlichen Server
zuzugreifen

@MikePennington - Wie würde bei einem privaten Netzwerk mit öffentlichen IPv4-Adressen, die tatsächlich außerhalb des privaten Netzwerks (dh des Internets) verwendet werden, jemand innerhalb des privaten Netzwerks eine öffentliche Site mit einer IP-Adresse in demselben Bereich erreichen? Wäre diese Anfrage nicht an einen Computer (vielleicht sogar an einen eigenen Computer) im privaten Netzwerk weitergeleitet worden?
Kevin Fegan

Das blinde Vertrauen in x-forwarded-for ist eine schlechte Idee. Es ist für jeden Täter trivial, einen gefälschten x-forwarded-for-Header zu setzen, der jede gewünschte Adresse beansprucht.
Peter Green

Antworten:


24

RFC 1918 definiert private IP-Adressbereiche. Schau mal hier.

Aus diesem Dokument:

  1. 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)


Danke. Ich finde es interessant, dass 127.0.0.0/16(und vielleicht noch mehr) nicht auf dieser Liste stehen.
Dotancohen


4
@dotancohen: Der Loopback-Block ist ein / 8-Block, kein / 16-Block und befindet sich nicht in dieser Liste, da es sich nicht um einen privaten Adressraum handelt.
Blrfl

@Blrfl: Danke, ich war mir nicht sicher, wie breit der Loopback-Block ist. Eigentlich möchte ich keine privaten Adressen identifizieren, sondern nicht öffentliche Adressen (von denen eine Teilmenge privat ist). Gibt es außer den RFC 1918/6890-Adressen und dem 127.0.0.0/8-Bereich noch andere offensichtlich nicht öffentliche Adressen, auf die man stoßen könnte?
Dotancohen

1
en.wikipedia.org/wiki/… 240.0.0.0 - 254.255.255.254 (240.0.0.0/4 und 255.0.0.0/8)
David Houde

37

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 anzumelden rviewsund sich selbst zu überzeugen. Dies ist beispielsweise ein von AS7018 (AT & T) angekündigter Platz "192".

route-views>sh ip route 192.199.1.0
Routing entry for 192.199.1.0/24
  Known via "bgp 6447", distance 20, metric 0
  Tag 7018, type external
  Last update from 12.0.1.63 3w1d ago
  Routing Descriptor Blocks:
  * 12.0.1.63, from 12.0.1.63, 3w1d ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 7018

route-views>

Andererseits werden Sie feststellen, dass 192.0.2.0/24 (ref RFC6890 ) nirgends zu finden ist ...

route-views>sh ip route 192.0.2.0 255.255.255.0
% Subnet not in table
route-views>

Noch ist 169.254.0.0/16 (oder länger) ...

route-views>sh ip route 169.254.0.0 255.255.0.0 longer
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 128.223.51.1 to network 0.0.0.0

route-views>

1
RFC 1918 wurde nicht von (oder zu) RFC 6890 aktualisiert. RFC 6890 wiederholt einfach die Zuweisung des IPv4-Adressblocks (192.0.0.0/24) an IANA. Außerdem weist es IANA an, seine IPv4- und IPv6-Sonderadresse neu zu strukturieren Registries. "Die Registrierungseinträge für IPv4-Spezialadressen für den privaten Gebrauch werden nicht aktualisiert, und der IPv4-Adressblock 192.0.0.0/24 wird als" IETF-Protokollzuweisungen " kategorisiert ."
einmalig

2
@ one.time, RFC 6890 enthält eine Obermenge des in RFC 1918 reservierten Adressraums. Ich habe keine Ahnung, warum Sie von 192.0.0.0/24 sprechen. Vielleicht solltest du meine Antwort noch einmal genauer lesen :-)
Mike Pennington

Der IPv4-Block 192.0.0.0/24 ist eines der Hauptthemen von RFC 6890, daher habe ich ihn zu Vergleichszwecken und zum Vergleich mit RFC 1918 herangezogen löste meine Neugier beim Lesen Ihres Beitrags. Abgesehen von einem Update der Registrierungseinträge für Sonderadressen für IPv4 und IPv6 zur Aufnahme von 192.0.0.0.24 ist RFC 6890 kein Update von RFC 1918. Ich wollte nur eine Bemerkung zur Richtigkeit der Aussage machen. HTHs ;-)
einmalig

5
@ one.time, pedantisch RFC 6890 ist kein Update zu RFC 1918. Funktional sollte RFC 6890 anstelle von RFC 1918 verwendet werden, wenn IP-Speicherplatz in einer öffentlichen BGP-Tabelle berücksichtigt wird ...
Mike Pennington

13

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.


2
Ehrlich gesagt ist "nicht zugewiesen" etwas, das für das Filtern nutzlos ist, da das Filtern viel mehr Probleme verursacht, als es löst. Und echte Bogons sind einfach, da sie sehr stabil / statisch sind.
Ytti

2
OK, dann benutze das nicht. Wie gesagt, sie bieten eine Vielzahl von Geschmacksrichtungen.
Olipro

2

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.