2013-09-04 17 views
5

C'è un sacco di software là fuori che fornisce informazioni sulla posizione approssimative basate su IP. Ho letto che questo è possibile perché gli IP sono assegnati in blocchi a posizioni particolari, e organizzazioni come l'American Registry for Internet Numbers gestiscono le informazioni su dove sono distribuiti. Il software di geolocalizzazione interroga le loro tabelle.Esiste un servizio o una procedura che può generare un IP quando viene data una posizione

Sto cercando di andare dall'altra parte però. Mi piacerebbe sapere se esiste un metodo disponibile per fornire una posizione (tramite codice di avviamento postale o codice DMA) e generare un indirizzo IP di esempio che si trova all'interno di tale posizione. La mia ricerca online è risultata infruttuosa: c'è un servizio online che fa questo, o è il metodo di distribuzione degli IP fatto con un processo che può essere decostruito per rendere un IP dato queste informazioni sulla posizione?

+0

Se non vuoi entrare in molti dettagli gegrafici puoi usare XKCD [mappa di internet] (http://xkcd.com/195/). È possibile creare un programma in modo che, data una posizione, sia possibile ottenere facilmente un indirizzo IP casuale. – Renan

+0

Stai provando a realizzare questo gratuitamente? (Non sto cercando di vendere i miei servizi!) – user2588667

risposta

3

Ho una soluzione per te. Innanzitutto, evidenzierò i passaggi di alto livello.


(1) Scarica dati gratuiti che collegano un blocco di indirizzi IP a un codice postale. (il contrario di ciò che vuoi).

(2) Basta interrogare quel database per un codice postale e selezionare qualsiasi IP nel "range valido" per quel codice di avviamento postale nella tabella che hai scaricato.


Così, per esempio, si voleva un indirizzo IP valido per Chicago, IL 60657, che ci si guarda l'intervallo valido di IP per 60657 e scegliere uno!

Giù alle specifiche ora ... vai a http://dev.maxmind.com/geoip/legacy/geolite/ scorri fino in fondo e scarica Geolite City. Questo include due CSV che probabilmente vorrai importare in una sorta di database relazionale. Una tabella associa un ID posizione a un codice postale. La seconda tabella corrisponde a un ID località con un intervallo IP valido.

Pertanto, quando si desidera creare un IP valido per il codice postale 60657, cercare l'ID posizione per 60657, quindi utilizzare la seconda tabella per cercare l'intervallo IP valido per quell'ID posizione.

Una cosa da tenere a mente è che ogni volta che si ha a che fare con intervalli di indirizzi IP, i nubmer sono decimali, I.E 16777471 invece di 103.412.411.22 (esempio falso). Per convertire tra notazione decimale e notazione dell'indirizzo IP e viceversa, utilizzare le formule su questo sito https://sites.google.com/site/followyourheart10/technical-section/ip-address-notations-conversion.

Buona fortuna!

+0

Grazie. Con i blocchi GeoLiteCity vedo due righe chiamate startIpNum e endIpNum rispettivamente. Non riesco a capire come convertire qualsiasi combinazione di questi in un indirizzo IP. Sulla base della struttura di un IP, suppongo che siano solo i primi tre numeri e gli ultimi tre numeri. Ma come lo userei in una query sulla posizione? Grazie ancora per questa risposta dettagliata. – 1252748

+0

Hai taggato la tua domanda come PHP, quindi presumo che tu stia utilizzando PHP. PHP ha una funzione incorporata per farlo, 'long2ip()', http://php.net/manual/en/function.long2ip.php. Se stai usando MySQL, puoi usare la funzione 'INET_NTOA', http://dev.mysql.com/doc/refman/5.1/en/miscellaneous-functions.html#function_inet-ntoa – user2588667

+0

Grande strategia. Ha funzionato come un fascino +100 :) – 1252748

Problemi correlati