2009-04-04 19 views
11

Esiste un sito Web che è possibile interrogare con un dominio e restituirà un elenco di tutti i siti Web ospitati su tale IP. Ricordo che esisteva un metodo in C# che era qualcosa come ReturnAddresses o qualcosa del genere. Qualcuno ha idea di come sia fatto? Interrogando un nome host o un IP e avendo restituito un elenco di nomi host, ovvero altri siti Web ospitati sullo stesso server?Verifica dominio IP inverso?

il sito è: http://www.yougetsignal.com/tools/web-sites-on-web-server/

risposta

17

Dopo aver letto i commenti, bobince è sicuramente giusto e questi 2 deve essere utilizzato in tandem con l'altro. Per ottenere i migliori risultati, è necessario utilizzare la ricerca DNS inversa qui e utilizzare la replica passiva del DNS.

string IpAddressString = "208.5.42.49"; //eggheadcafe 

try 
{ 
    IPAddress hostIPAddress = IPAddress.Parse(IpAddressString); 
    IPHostEntry hostInfo = Dns.GetHostByAddress(hostIPAddress); 
    // Get the IP address list that resolves to the host names contained in 
    // the Alias property. 
    IPAddress[] address = hostInfo.AddressList; 
    // Get the alias names of the addresses in the IP address list. 
    String[] alias = hostInfo.Aliases; 

    Console.WriteLine("Host name : " + hostInfo.HostName); 
    Console.WriteLine("\nAliases :"); 
    for(int index=0; index < alias.Length; index++) { 
    Console.WriteLine(alias[index]); 
    } 
    Console.WriteLine("\nIP address list : "); 
    for(int index=0; index < address.Length; index++) { 
     Console.WriteLine(address[index]); 
    } 
} 
catch(SocketException e) 
{ 
    Console.WriteLine("SocketException caught!!!"); 
    Console.WriteLine("Source : " + e.Source); 
    Console.WriteLine("Message : " + e.Message); 
} 
catch(FormatException e) 
{ 
    Console.WriteLine("FormatException caught!!!"); 
    Console.WriteLine("Source : " + e.Source); 
    Console.WriteLine("Message : " + e.Message); 
} 
catch(ArgumentNullException e) 
{ 
    Console.WriteLine("ArgumentNullException caught!!!"); 
    Console.WriteLine("Source : " + e.Source); 
    Console.WriteLine("Message : " + e.Message); 
} 
catch(Exception e) 
{ 
    Console.WriteLine("Exception caught!!!"); 
    Console.WriteLine("Source : " + e.Source); 
    Console.WriteLine("Message : " + e.Message); 
} 

per gentile concessione di http://www.eggheadcafe.com/community/aspnet/2/83624/system-dns-gethostbyaddre.aspx

+0

Wow, il tuo aiuto in questa domanda è molto apprezzato. Se avessi saputo il nome di ciò che l'operazione è chiamata, potrebbe rendere la mia ricerca di una risposta in Google molto più facile, ma sono contento di poter contare su brillanti utenti di stackoverflow come te quando altre misure falliscono. Molti oggetti di scena –

+0

Wow, grazie. Non sapevo che funzionasse così. –

+0

è solo un peccato che la risposta sia totalmente errata. Vedi http://stackoverflow.com/questions/458841/reverse-ip-lookup e la risposta di Bobince per quella giusta. – Alnitak

8

risposta di Jeremy si basa su Reverse DNS, che è il modo programmatico normale per cercare IP> hostname. Si basa su un record PTR impostato per quel server; questo è spesso ma non sempre impostato su qualcosa di utile.

Ad esempio, cercare thedailywtf.com e otterrete 74.50.106.245, ma poiché non vi è alcun record PTR per "245.106.50.74.in-addr.arpa", Dns.GetHostEntry() non restituirà qualsiasi cosa utile

Analogamente, molte server farm ti daranno solo un nome host generico come 123.45.67.89-dedicated.bigexamplehost.com.

Che cosa sta facendo l'indicatore del sito Web è diverso, è "Replica DNS passiva". Eseguono alcuni server DNS che le persone stanno interrogando e ricordano ogni hostname che è stato consultato. Quindi puoi interrogare i loro record delle ricerche passate in base all'indirizzo che è stato restituito. Inserisci 74.50.106.245 in yougetsignal e riceverai un elenco di nomi host che in precedenza venivano risolti sul server dailywtf quando le persone li interrogavano, non qualcosa a che fare con la voce PTR DNS inversa.

2

Il DNS inverso non è uguale a quello richiesto (quali siti sono ospitati sullo stesso server). DNS inverso generalmente non funzionerà come previsto (vedi la risposta di Bobince).

Per poter identificare altri siti Web in un host, è necessario creare un enorme database e archiviare quanto più record DNS possibile, quindi correlare gli indirizzi IP.

Partenza: http://www.domaintools.com/reverse-ip/

Stanno facendo questo come il modo in cui ho detto, questo è solo un modo per ottenere risultati accurati. Ovviamente ci vuole tempo, CPU, larghezza di banda e spazio per correlare e sottoporre a scansione/generare quei dati.