2009-04-04 5 views
11

Il existe un site Web que vous pouvez interroger avec un domaine et il renverra une liste de tous les sites Web hébergés sur cette adresse IP. Je me souviens qu'il y avait une méthode en C# qui ressemblait à ReturnAddresses ou quelque chose de ce genre. Est-ce que quelqu'un a une idée de comment cela est fait? Demander un nom d'hôte ou IP et avoir retourné une liste de noms d'hôte alias d'autres sites Web hébergés sur le même serveur?Contrôle de domaine IP inverse?

le site est: http://www.yougetsignal.com/tools/web-sites-on-web-server/

Répondre

17

Après avoir lu les commentaires, bobince est certainement droit et ces 2 devrait être utilisé en tandem avec l'autre. Pour de meilleurs résultats, vous devez utiliser la recherche DNS inversée ici et utiliser la réplication DNS passive.

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

avec la permission de http://www.eggheadcafe.com/community/aspnet/2/83624/system-dns-gethostbyaddre.aspx

+0

Wow, votre aide dans cette question est très appréciée. Si j'avais su le nom de l'opération, cela pourrait grandement faciliter ma recherche d'une réponse dans Google, mais je suis heureux de pouvoir compter sur des utilisateurs brillants comme vous lorsque d'autres mesures échouent. Beaucoup d'accessoires –

+0

Wow, merci. Je ne savais pas que ça fonctionnait comme ça. –

+0

c'est juste dommage que la réponse soit totalement incorrecte. Voir http://stackoverflow.com/questions/458841/reverse-ip-lookup et la réponse de Bobince pour la bonne. – Alnitak

8

La réponse de Jeremy est basée autour Reverse DNS, ce qui est la façon normale de regarder programmatique jusqu'à hostname IP->. Il repose sur un enregistrement PTR en cours de configuration pour ce serveur; ceci est souvent mais pas toujours mis en place pour quelque chose d'utile. Par exemple chercher, thedailywtf.com et vous obtiendrez 74.50.106.245, mais comme il n'y a aucun enregistrement PTR pour "245.106.50.74.in-addr.arpa", Dns.GetHostEntry() ne retournera pas rien d'utile. De même, de nombreuses batteries de serveurs vous donneront simplement un nom d'hôte générique comme 123.45.67.89-dedicated.bigexamplehost.com. Ce que vous faites est différent, c'est "Réplication DNS passive". Ils exécutent certains serveurs DNS interrogés, et se souviennent de chaque nom d'hôte recherché. Ensuite, vous pouvez interroger leurs enregistrements de recherches passées par l'adresse qui a été retournée. Mettez 74.50.106.245 dans yougetsignal et vous obtiendrez une liste de noms d'hôte qui ont été résolus au serveur dailywtf lorsque les gens les ont interrogés, et non quelque chose à voir avec l'entrée Reverse DNS PTR.

2

Le DNS inversé n'est pas identique à ce que vous demandez (quels sites hébergés sur le même serveur). Le reverse DNS ne fonctionnera généralement pas comme prévu (voir la réponse de Bobince). Pour pouvoir identifier d'autres sites Web dans un hôte, vous devez créer une base de données massive et stocker autant d'enregistrements DNS que possible, puis corréler les adresses IP.

Départ: http://www.domaintools.com/reverse-ip/

Ils font cela comme la façon dont je l'ai dit, qui est seul moyen d'obtenir un résultat précis. Évidemment, il faut du temps, du CPU, de la bande passante et de l'espace pour corréler et analyser/générer ces données.

Questions connexes