2013-09-04 12 views
5

Es gibt eine Menge Software, die ungefähre Standortinformationen basierend auf IP bereitstellt. Ich habe gelesen, dass dies möglich ist, weil die IPs in Blöcken bestimmten Orten zugewiesen sind, und Organisationen wie die amerikanische Registrierung für Internetnummern verwalten Informationen darüber, wo sie verteilt sind. Die Geolocation-Software fragt ihre Tabellen ab.Gibt es einen Dienst oder eine Prozedur, die eine IP generieren kann, wenn ein Standort angegeben wird?

Ich versuche jedoch, den anderen Weg zu gehen. Ich würde gerne wissen, ob es eine verfügbare Methode gibt, einen Standort anzugeben (über Postleitzahl oder DMA-Code) und eine Beispiel-IP-Adresse zu generieren, die sich an diesem Ort befindet. Meine Online-Suche hat sich als fruchtlos erwiesen: Gibt es einen Online-Dienst, der das tut, oder wird die Methode der Verteilung von IPs mit einem Prozess ausgeführt, der dekonstruiert werden kann, um eine IP mit diesen Standortinformationen zu versehen?

+0

Wenn Sie nicht in viele gegrafische Details gehen möchten, können Sie XKCDs [Karte des Internets] (http://xkcd.com/195/) verwenden. Sie können ein Programm so erstellen, dass Ihnen die angegebene IP-Adresse leicht eine zufällige IP-Adresse gibt. – Renan

+0

Versuchen Sie, dies kostenlos zu erreichen? (Ich versuche nicht, meine Dienste zu verkaufen!) – user2588667

Antwort

3

Ich habe eine Lösung für Sie. Zuerst werde ich die hohen Stufen hervorheben.


(1) Laden Sie kostenlose Daten herunter, die einen IP-Adressblock mit einer Postleitzahl verknüpfen. (das Gegenteil von dem, was Sie wollen).

(2) Einfach diese Datenbank nach einer Postleitzahl abfragen und eine beliebige IP im "gültigen Bereich" für diese Postleitzahl in der heruntergeladenen Tabelle auswählen.


So zum Beispiel, wollten Sie eine gültige IP-Adresse für Chicago, IL 60657, würden Sie den gültigen IP-Bereich für 60657 und eine Pick nachschlagen!

Bis auf Details jetzt ... gehen Sie zu http://dev.maxmind.com/geoip/legacy/geolite/ Blättern Sie nach unten und downloaden Geolite City. Dies kommt mit zwei CSVs, die Sie wahrscheinlich in eine Art relationaler Datenbank importieren möchten. Eine Tabelle ordnet einer Postleitzahl eine Standort-ID zu. Die zweite Tabelle stimmt eine Standort-ID mit einem gültigen IP-Bereich überein.

Wenn Sie also eine gültige IP für Postleitzahl 60657 erstellen möchten, suchen Sie die Standort-ID für 60657, und suchen Sie dann in der zweiten Tabelle den gültigen IP-Bereich für diese Standort-ID.

Eine Sache im Auge zu behalten ist, dass, wenn Sie mit IP-Adressbereichen handeln, die nubmers in dezimal sind, das heißt 16.777.471 statt 103.412.411.22 (fake Beispiel). Verwenden Sie die Formeln auf dieser Seite https://sites.google.com/site/followyourheart10/technical-section/ip-address-notations-conversion, um zwischen dezimaler Notation und IP-Adressennotation und umgekehrt zu konvertieren.

Viel Glück!

+0

Danke. Mit den GeoLiteCity-Blöcken sehe ich zwei Zeilen namens startIpNum bzw. endIpNum. Ich kann nicht verstehen, wie man irgendeine Kombination von diesen in eine IP-Adresse umwandelt. Basierend auf der Struktur einer IP, vermute ich, dass es nur die ersten drei Zahlen und die letzten drei Zahlen sind. Aber wie würde ich das in einer Standortabfrage verwenden? Nochmals vielen Dank für diese detaillierte Antwort. – 1252748

+0

Sie haben Ihre Frage als PHP markiert, also nehme ich an, dass Sie PHP verwenden. PHP hat eine schöne eingebaute Funktion, 'long2ip()', http://php.net/manual/en/function.long2ip.php. Wenn Sie MySQL verwenden, können Sie die Funktion "INET_NTOA" verwenden, http://dev.mysql.com/doc/refman/5.1/en/miscellent-functions.html#function_inet-ntoa – user2588667

+0

Große Strategie. Arbeitete wie ein Charme +100 :) – 1252748