2008-11-08 6 views
19

Welche IPs sind welchen ISPs öffentlichen Informationen zugeordnet? Wie erhalten Geo-IP-Dienste diese Informationen und pflegen diese Informationen?Wie funktioniert die geographische Suche nach IP?

Wie kann ich persönlich herausfinden, wo eine bestimmte IP gehört, ohne einen dieser Dienste zu benutzen?

+2

Sie könnten an der [xkcd IP-Karte] interessiert sein (http://xkcd.com/195/). –

Antwort

36

Für was es wert ist, arbeitete ich auf einem höheren Niveau in der ISP-Industrie für mehr als ein Jahrzehnt, so dass ich einige Erfahrung damit habe.

Große IP-Bereiche werden je nach Bedarf von IANA jedem der Regional Internet Registries zugewiesen.

Die Regionen sind in der Regel kontinental - IP-Adressen sind nicht zugewiesen pro Land.

Die RIRs weisen wiederum ISPs IP-Adressen zu, die sie wiederum den Endbenutzern zuweisen.

Jeder der RIRs verwaltet einen whois Server, der abgefragt werden kann, um nicht nur herauszufinden, welchem ​​ISP ein beliebiger Netblock zugewiesen wurde, sondern in gewissem Umfang auch welchen Endbenutzer und welche Adresse des Endbenutzers.

Beachten Sie, dass viele ISPs diese Informationen nicht für jeden einzelnen Kunden ausfüllen. Daher ist es wahrscheinlich, dass die Geodatensätze die Adresse Ihres Internetdienstanbieters und nicht Ihre eigene Adresse angeben, wenn Sie ein privater Teilnehmer eines DSL-Dienstes sind.

Die verschiedenen GeoLocation-Anbieter arbeiten meist mit dem Mining dieser whois Datensätze. Beachten Sie, dass die Rechtmäßigkeit des Vorgangs eine Grauzone ist - RIPEs Datenbank-Copyright-Erklärung lautet here.

IANA verwaltet auch die Root-Zone für das DNS, aber das ist völlig unabhängig von allen IP-Zuweisungsfunktionen. Es ist sehr wichtig, die Unterscheidung zwischen Domänennamenoperationen und IP-Adressen beizubehalten.

2

Vorsicht, die Daten werden oft nur langsam aktualisiert und können sogar noch langsamer repliziert werden. Mein Arbeitsplatz hat vor einigen Jahren die ISPs gewechselt, und uns wurde ein Block früherer kanadischer IP-Adressen zugewiesen (wir haben unseren Sitz in den USA). Google hat uns Google über Monate hinweg weiterhin als Standardsuchmaschine zur Verfügung gestellt. Etwa die Hälfte der Zeit kommt meine IP-Adresse aus meiner Stadt, die andere Hälfte aus einer Stadt in einem anderen Staat.

Jason hat recht, dass der Prozess der gleiche ist, aber die Updates sind noch langsamer und die Daten weniger genau.

+0

Nun ja, wenn Sie den Domain-Stack nach unten bewegen, werden die Dinge langsamer und langsamer und brauchen mehr Zeit, um sich auszubreiten ... –

+0

Es gibt auch Probleme, wenn Sie in einem anderen Land ansässig sind. Joel schrieb darüber, sein Gastgeber war Kanadier. –

+0

Jason - das ist Quatsch. Es ist nicht "wie weit unten auf dem Stapel" du bist. Jeder ISP kann eine Änderung vornehmen, die sofort in den "whois" -Daten sichtbar ist. Was langsam ist, ist das (wahrscheinlich illegale) Crawlen dieser Daten durch die GeoLoc-Anbieter. – Alnitak

4

Es gibt eine Vielzahl von Bibliotheken, die Zuordnungstabellen sowie Dienste enthalten, die Sie in Ihren Code integrieren können.

Die wichtigste Sache zu verstehen ist, dass es keine direkte Beziehung zwischen einer IP-Adresse und irgendeinem Teil der Welt gibt. Die Adressen werden in großen Blöcken an grob geographische Organisationen vergeben, die wiederum kleinere Blöcke zuweisen, dies kann auf verschiedenen Ebenen für eine bestimmte IP-Adresse passieren (Alnitak erklärt den Prozess gut).

Fakt ist: WHOIS-Daten müssen nicht genau sein. Wenn ich einen Adressblock habe, kann ich sagen, dass es auf dem Mars ist. Und selbst wenn Sie den Standort der endgültigen Organisation eingrenzen (z. B. ein sehr kleiner ISP in Alaska), verwendet der Benutzer möglicherweise die Einwahl aus Hawaii, oder der Server hostet möglicherweise eine Firma aus Guam.

Es gibt also immer ein Element von Risiko/Schätzung beim Zuordnen einer IP-Adresse (oder eines Domänennamens) zu einem physischen Standort. Dies soll nicht heißen, dass Sie es nie tun sollten, es gibt viele Anwendungen, bei denen grobe oder unvollständige Informationen sehr nützlich sind.

1

Alnitaks Antwort ist ziemlich auf dem Prüfstand.

Als eine Randnotiz, wenn Sie eine DLL verwenden möchten, um den Standort des Benutzers zu ermitteln, können Sie versuchen, diese IPAddressExtension gefunden auf CodePlex. Es hat eine interne Datenbank von ISPs zu Standorten. Wie oben von Alnitak erwähnt, hat jeder ISP IP-Blöcke .. so ist diese Informationen alle innerhalb der .dll begraben :)

Es ist wirklich einfach zu bedienen. Verweisen Sie einfach auf die .dll und erstellen Sie dann eine Instanz eines System.Net.IpAddress Objekts! Die Erweiterungen sind darin aufgeführt.

Ich muss auch erklären, dass ich der Autor dieses Codeplex-Projekts/Produkt bin.

Bitte überprüfen Sie es heraus :)

EDIT: hinzugefügt Informationen über mich der Autor dieses Produkts zu sein.

+3

Sie sollten Ihre Antwort bearbeiten, um anzuzeigen, dass Sie selbst der Autor von IPAddressExtension sind. Andernfalls könnten die Leute denken, dass Sie die SO Nutzungsbedingungen missbrauchen. – bzlm

4

Um die spezifische Frage über "wie es funktioniert" zu beantworten: gibt es viel manuelle Arbeit beteiligt, und die Datenbanken werden zu einem großen Teil manuell gepflegt. Wie andere Antworten zeigen, gibt es keine echte Korrelation zwischen IP-Bereichen und Ländern, viel weniger spezifische Regionen. In jüngster Zeit ist das System der Verteilung von IP-Adressräumen noch dezentraler geworden, was bedeutet, dass kleine private Anbieter unabhängig von der geografischen Region IPv4-Adressbereiche erwerben können. Aus diesem Grund hat Google Urchin akquiriert, damit sie ihre Dienste für Google Analytics nutzen können, das genaue Informationen zu IP-zu-geografischen Regionen liefert.

Wenn Sie keinen Dienst wie MaxMind (frei für den persönlichen Gebrauch, und die Datenbank ist zu einem gewissen Grad geöffnet) oder Google Analytics (kostenlos für den persönlichen Gebrauch) verwenden möchten, gibt es kostenlose (und daher immer etwas veraltete) Datenbanken herumschweben, manchmal als flache Dateien.