2010-08-05 7 views
5

In PHP esiste una funzione per eseguire una ricerca inversa su un nome di dominio per scoprire quanti siti Web sono ospitati sul server di hosting condiviso in cui è ospitato il nome di dominio. O un modo per farlo con PHP?Ricerca IP inversa con PHP

Ora, sono già a conoscenza dei servizi online che offrono questo. Tuttavia, voglio scrivere una sceneggiatura per farlo da solo. Non riesco a capirlo.

Qualsiasi suggerimento che non suggerisce l'utilizzo di un servizio di terze parti sarebbe ottimo.

+2

Precedentemente questo era possibile con AXFR. Ma al giorno d'oggi è limitato tra nameserver autorevole e secondario di ciascun dominio. Allo stesso modo è raro che si nascondano domini configurati usando pagine di stato Apache/accesso al registro. Quindi, nessuna fortuna se non si crea un enorme ip-> database di dominio da soli. – mario

+0

Un singolo server di hosting condiviso può avere indirizzi IP diversi per ciascun host virtuale, quindi non sono sicuro di quanto sia affidabile e utile il report che si otterrà. – stillstanding

risposta

2

Non c'è un modo infallibile per fare quello che stai chiedendo.

In DNS, l'indirizzo IP di un sito, ad esempio "1.5.7.9", ha associato un nome di dominio come "9.7.5.1.in-addr.arpa". Questo nome inverso può contenere record PTR che puntano al nome di dominio. Pertanto, "esempio.com" può eseguire il mapping su "1.5.7.9" con un record A e "9.7.5.1.in-addr.arpa" potrebbe puntare su "esempio.com".

Un indirizzo IP può avere più di un record PTR. Ma, generalmente, non lo fanno. Quindi l'unico modo per conoscere tutti i nomi di dominio che condividono un IP è cercare e ricordare tutti i nomi di dominio (non fattibili), o ottenere le informazioni da qualche altra fonte.

Inoltre, a un dato computer possono essere assegnati molti IP. Non c'è modo di sapere quanti.

0

Sono curioso di sapere come si potrebbe sapere: i siti Web ospitati possono entrare e uscire su IP abbastanza velocemente. È facile aggiungere alcune migliaia di domini al minuto e rimuoverli tutti di nuovo il minuto successivo.

Avete visto http://pink.bikeshed.com? O http://red.bikeshed.com? O http://white.bikeshed.com? Sarebbe semplicissimo estenderlo a tutte le 754 voci nel mio file X11 rgb.txt, anche se non sembra che lo abbiano fatto. Sarebbe un po 'più di lavoro per supportare la creazione al volo di' nuovi siti web '...

0

Forse ho sbagliato, ma penso che (il/one) modo di farlo è quello di interrogare ogni nome di dominio individualmente e memorizzare l'indirizzo IP corrispondente.

Quando qualcuno interroga un determinato dominio/indirizzo IP, è sufficiente mostrare tutti gli altri domini che condividono lo stesso IP, se non si ha il dominio elencato, basta risolvere l'IP e memorizzarlo.

Sarebbe anche abbastanza facile (e relativamente veloce) risolvere il problema menzionato @sarnold, semplicemente aggiornando tutti i domini che si trovano nello stesso indirizzo IP del dominio interrogato - o semplicemente il dominio stesso, magari con un limite di 1 aggiornamento al giorno o qualcosa del genere.

4

è fare in grado ... programma di esempio che lo utilizzano sia in Python che so darkjumper

non so come funziona, ma funziona solo .. è possibile leggere il codice sorgente in Python e riscrivere il software in php

Si può provare a eseguire la funzione IP inversa di questo software utilizzando -m opzione reverseonly

./darkjumper.py -t stackoverflow.com -m reverseonly alla ricerca

[+] Target set : stackoverflow.com 
[+] Use proxy : None 
[+] Verbocity : False 
[+] Trying reverse your target's ip... 
[+] Please wait... 
----------------------------------------- 
http://stackoverflow.com 
http://gadgets.stackexchange.com 
http://webmasters.stackexchange.com 
http://stats.stackexchange.com 
http://gaming.stackexchange.com 
http://gamedev.stackexchange.com 
http://photo.stackexchange.com 
http://cooking.stackexchange.com 
http://chat.meta.stackoverflow.com 
http://stackoverflow.com 
http://stackoverflow.com 

---------------------------------------- 
[+] Found : 12 Domains hosted at this IP 
---------------------------------------- 
+0

Non funziona sempre. Immaginazione piuttosto sofisticata, però :-). – Borealid

+0

@Borealid: da quello che ho capito, cerca semplicemente di seguire i primi 50 link nel dominio e abbinarli con l'indirizzo IP? Questo non sembra molto "sofisticato". –

+0

@Alix Axel: Come ho detto, sofisticate congetture. È più intelligente della semplice lettura del record PTR, ma con server virtuali per domini non correlati, non ne ottiene uno da un altro. – Borealid

6

In PHP basta usare

$domain = gethostbyaddr($ip); 

buona fortuna!

+0

nice .. questa dovrebbe essere la risposta. – Drmjo

+0

@Drmjo Questo in realtà non fa ciò che l'OP ha richiesto quindi no non dovrebbe essere la risposta – RiggsFolly

+0

@RiggsFolly hai ragione l'ho fatto all'indietro ... ma questa funzione ha risolto il mio problema ... – Drmjo