2009-04-04 9 views
11

Es gibt eine Website, die Sie mit einer Domain abfragen können und die eine Liste aller auf dieser IP gehosteten Websites zurückgibt. Ich erinnere mich, dass es in C# eine Methode gab, die etwas wie ReturnAddresses oder etwas in der Art war. Hat jemand eine Idee, wie das gemacht wird? Einen Hostnamen oder eine IP-Adresse abfragen und eine Liste von Hostnamen, auch bekannt als andere Websites, die auf demselben Server gehostet werden, zurückgeben?Reverse IP Domain Check?

der Website ist: http://www.yougetsignal.com/tools/web-sites-on-web-server/

Antwort

17

Nach dem Lesen der Kommentare, bobince ist auf jeden Fall richtig und diese 2 sollten miteinander in Tandem verwendet werden. Um die besten Ergebnisse zu erzielen, sollten Sie sowohl die umgekehrte DNS-Suche als auch die passive DNS-Replikation verwenden.

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); 
} 

mit freundlicher Genehmigung von http://www.eggheadcafe.com/community/aspnet/2/83624/system-dns-gethostbyaddre.aspx

+0

Wow, Ihre Hilfe in dieser Frage wird sehr geschätzt. Wenn ich den Namen der Operation gekannt hätte, könnte das meine Suche nach einer Antwort in Google viel einfacher machen, aber ich bin froh, dass ich mich auf helle stackoverflow-Benutzer wie Sie verlassen kann, wenn andere Maßnahmen fehlschlagen. Viel Requisiten. –

+0

Wow, danke. Ich wusste nicht, dass es so funktioniert. –

+0

ist es nur eine Schande, dass die Antwort völlig falsch ist. Siehe http://stackoverflow.com/questions/458841/reverse-ip-lookup und Bobinces Antwort auf die richtige Frage. Anscheinend ist die – Alnitak

8

Jeremys Antwort basiert auf Reverse DNS, die die normale programmatische Art und Weise ist zu sehen IP-> Hostnamen. Es stützt sich auf einen PTR-Datensatz, der für diesen Server eingerichtet ist. Dies ist oft, aber nicht immer etwas Nützliches.

Zum Beispiel nachschlagen, thedailywtf.com und Sie werden 74,50.106.245 bekommen, aber da es keinen PTR-Record für "245.106.50.74.in-addr.arpa" gibt, wird Dns.GetHostEntry() nicht zurückkehren etwas Nützliches.

In ähnlicher Weise geben viele Serverfarmen nur einen generischen Hostnamen wie 123.45.67.89-dedicated.bigexamplehost.com.

Was youtesignal macht, ist anders, es ist "Passive DNS-Replikation". Sie führen einige DNS-Server aus, die von Leuten abgefragt werden, und erinnern sich an jeden Hostnamen, der nachgeschlagen wurde. Dann können Sie ihre Aufzeichnungen vergangener Suchvorgänge nach der Adresse abfragen, die zurückgegeben wurde. Setzen Sie 74.50.106.245 in yougetsignal und Sie erhalten eine Liste der Hostnamen, die zuvor auf den dailywtf-Server aufgelöst wurden, als die Leute sie abgefragt haben, und nichts mit dem Reverse-DNS-PTR-Eintrag.

2

Reverse-DNS ist nicht das gleiche wie das, was Sie fragen (welche Websites gehostet auf dem gleichen Server). Reverse DNS funktioniert im Allgemeinen nicht wie erwartet (siehe bobince's Antwort).

Um andere Websites in einem Host identifizieren zu können, müssen Sie eine umfangreiche Datenbank erstellen und so viele DNS-Einträge wie möglich speichern und dann die IP-Adressen korrelieren.

Check out: http://www.domaintools.com/reverse-ip/

Sie tun dies als Weg, sagte ich, das ist nur so ein genauen Ergebnisse zu erhalten. Offensichtlich braucht es Zeit, CPU, Bandbreite und Speicherplatz, um diese Daten zu korrelieren und zu crawlen/generieren.

Verwandte Themen