2009-04-04 17 views
11

Hay un sitio web que puede consultar con un dominio y le devolverá una lista de todos los sitios web alojados en esa IP. Recuerdo que había un método en C# que era algo así como ReturnAddresses o algo por el estilo. ¿Alguien tiene alguna idea de cómo se hace esto? ¿Desea un nombre de host o IP y ha devuelto una lista de nombres de host también conocidos como otros sitios web alojados en el mismo servidor?¿Comprobación de dominio IP inversa?

la página web es: http://www.yougetsignal.com/tools/web-sites-on-web-server/

Respuesta

17

Después de leer los comentarios, bobince es sin duda justo y estos 2 debe ser utilizado en conjunto con los demás. Para obtener los mejores resultados, debe usar la búsqueda DNS inversa aquí, así como también usar la replicación DNS pasiva.

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

cortesía de http://www.eggheadcafe.com/community/aspnet/2/83624/system-dns-gethostbyaddre.aspx

+0

Guau, su ayuda en esta pregunta es muy apreciada. Si hubiera sabido el nombre de la operación, podría haber hecho que mi búsqueda de una respuesta en Google fuera mucho más fácil, pero me alegro de poder contar con usuarios brillantes y brillantes de stackoverflow como usted cuando fallan otras medidas. Mucho apoyo. –

+0

Guau, gracias. No sabía que funcionó así. –

+0

es una pena que la respuesta sea totalmente incorrecta. Ver http://stackoverflow.com/questions/458841/reverse-ip-lookup y la respuesta de Bobince para la correcta. – Alnitak

8

respuesta de Jeremy se basa en Reverse DNS, que es la forma programática normal a mirar hacia arriba IP-> nombre de host. Se basa en un registro PTR que se está configurando para ese servidor; esto a menudo, pero no siempre está configurado para algo útil.

Por ejemplo, busque thedailywtf.com y obtendrá 74.50.106.245, pero como no hay ningún registro PTR para "245.106.50.74.in-addr.arpa", Dns.GetHostEntry() no regresará algo útil

De manera similar, muchas granjas de servidores solo le darán un nombre de host genérico como 123.45.67.89 -dedicated.bigexamplehost.com.

Lo que yougetsignal está haciendo es diferente, es "Replicación DNS pasiva". Ejecutan algunos servidores DNS que las personas consultan, y recuerdan cada nombre de host que se buscó. Luego puede consultar sus registros de búsquedas pasadas por la dirección que fue devuelta. Ponga 74.50.106.245 en su firma y obtendrá una lista de nombres de host que se resolvieron previamente en el servidor de dailywtf cuando las personas los consultaron, no en relación con la entrada de Invertir DNS PTR.

2

Invertir DNS no es lo mismo que lo que pregunta (qué sitios están alojados en el mismo servidor). El DNS inverso generalmente no funcionará como esperaba (consulte la respuesta de Bobince).

Para poder identificar otros sitios web en un host, necesita crear una base de datos masiva y almacenar tanto como el registro DNS como sea posible, luego correlacionar las direcciones IP.

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

Ellos están haciendo esto como la forma en que dije, que es única manera de conseguir un resultado exacto. Obviamente, lleva tiempo, CPU, ancho de banda y espacio correlacionar y rastrear/generar esos datos.

Cuestiones relacionadas