Sarà capitato a chiunque di avere per le mani un indirizzo IP o un dominio e voler ottenere informazioni sullo stesso, ora, per quanto esistano dei siti tipo
DNSStuff che permettono di ottenere diverse informazioni, se si tratta di fare quanto sopra da un programma o da uno script la cosa diventa alquanto scomoda, ecco un'idea che potrebbe essere di aiuto
Attenzione da qui in poi c'è "roba tecnica" Si parta dal file scaricabile
da qui ed in particolare dalla tabella di nome "
range.delim", i records della tabella sono in formato
"nome paese""ip iniziale""ip finale"1) Si legga un record dalla tabella; si prelevi l'indirizzo IP iniziale, lo si rovesci (es. 1.2.3.4 diverrà 4.3.2.1) e si aggiunga in coda ".zz.countries.nerd.dk" ottenendo ad es. "4.3.2.1.zz.countries.nerd.dk"
2) Si utilizzi il nome generato per una query DNS di tipo TXT ad es. (nslookup -type=TXT 4.3.2.1.zz.countries.nerd.dk) tale query ritornerà il TLD (country TLD) relativo al paese al quale l'indirizzo IP è assegnato; TLD che è assente nella tabella originale
3) Si utilizzi di nuovo l'IP rovesciato, stavolta aggiungendo in coda ".origin.asn.cymru.com" (es. 4.3.2.1.origin.asn.cymru.com) per una seconda query DNS, sempre di tipo TXT che ritornerà l'ID del server "whois" relativo al blocco IP in questione .. ed altre informazioni
4) Si utilizzi il TLD trovato al punto 2 aggiungendo in coda ".whois-servers.net" (es. ad.whois-servers.net) per una terza query DNS, stavolta di tipo A (nslookup ad.whois-servers.net) che ritornerà il nome del server "whois" relativo al TLD (paese)
5) Si scriva un record con il formato "ip inizio","ip fine","whois ip","tld","whois tld","descrizione", ad esempio "58.2.0.0","58.2.255.255","whois.apnic.net","in","whois.inregistry.net","India"
6) si ripeta il tutto dal punto (1) fino a fine file
al termine si avrà una tabella che potrà (ad es.) essere importata in un database e quindi usata per ottenere, partendo da un dominio o da un indirizzo IP, il rispettivo paese di appartenenza ed il whois server da interrogare per ottenere ulteriori informazioni; per chiarire quanto sopra ecco un esempio pratico, si supponga di voler trovare le informazioni relative al primo record del file "
range.delim", ossia "
Andorra 85.94.160.0 85.94.191.255" ecco in sequenza le operazioni
1) reverse:
85.94.160.0 ->
0.160.94.85 -> 0.160.94.85.zz.countries.nerd.dk
2) TLD: "nslookup -type=TXT 0.160.94.85.zz.countries.nerd.dk" -> "
ad"
3) IP whois: "nslookup -type=TXT 0.160.94.85.origin.asn.cymru.com" -> "6752 | 85.94.160.0/22 | AD |
ripencc | 2005-01-04"
4) TLD whois: "nslookup ad.whois-servers.net" -> "
whois.ripe.net"
5) Scrittura record:
"85.94.160.0","85.94.191.255","whois.ripe.net","ad","whois.ripe.net","Andorra"da notare che nel caso di cui sopra sia il whois server relativo al blocco IP sia quello relativo al TLD sono identici, questo non è però sempre vero ed è per questo che è necessario procedere come visto sopra, inoltre, la query al server "cymru" ritorna una "sigla" corrispondente al server whois, ad esempio ripencc->whois.ripe.net, arin->whois.arin.net ecc.. sigla che sarà necessario "decodificare" per scrivere il nome del whois server vero e proprio
A questo punto, avendo creato il file (o la tabella di database), per ottenere le informazioni relative ad un IP sarà sufficiente trovare il record nel cui intervallo "ipfrom","ipto" ricade l'indirizzo cercato, da tale record si estrarrà quindi il TLD ed il nome del server whois relativo al blocco IP (il primo whois del record) che potrà quindi essere interrogato per ottenere ulteriori informazioni; stessa cosa nel caso di un dominio, si estrarrà dal dominio il "TLD" (ultima parte del nome), si cercherà il (primo) record relativo al TLD in questione e si otterrà così il server whois autoritativo per tale TLD (il secondo whois)
Qualcuno avrà notato che quanto sopra non comprende i TLD "generici" (com, net, org..) dato che questi non sono associati con un particolare paese, per questi ultimi sarà sufficiente avviare una query verso "whois-servers.net" (es. nslookup com.whois-servers.net) per ottenere il nome del whois server da utilizzare
Spero che quanto sopra possa essere di aiuto a qualcuno; ad esempio a fini statistici o per qualsiasi altro scopo che implichi il "mapping" tra indirizzi IP e paesi e/o il reperimento di informazioni su indirizzi IP o domini