Обратный IP-домен Проверить? - PullRequest
12 голосов
/ 04 апреля 2009

Существует веб-сайт, к которому можно обратиться с доменом, и он вернет список всех веб-сайтов, размещенных на этом IP. Я помню, что в C # был метод, похожий на ReturnAddresses или что-то в этом роде. У кого-нибудь есть идеи, как это сделать? Запрос имени хоста или IP-адреса и возвращение списка имен хостов или других веб-сайтов, размещенных на том же сервере?

веб-сайт: http://www.yougetsignal.com/tools/web-sites-on-web-server/

Ответы [ 3 ]

19 голосов
/ 04 апреля 2009

После прочтения комментариев, Бобинс определенно прав, и эти 2 должны использоваться в тандеме друг с другом. Для достижения наилучших результатов вы должны использовать обратный поиск DNS здесь, а также использовать пассивную репликацию 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);
}

Предоставлено http://www.eggheadcafe.com/community/aspnet/2/83624/system-dns-gethostbyaddre.aspx

8 голосов
/ 04 апреля 2009

Ответ Джереми основан на Обратный DNS , который является обычным программным способом поиска IP-> имени хоста. Он полагается на запись PTR, настроенную для этого сервера; это часто, но не всегда, настроено на что-то полезное.

Например, посмотрите вверх, thedailywtf.com, и вы получите 74.50.106.245, но, поскольку для «245.106.50.74.in-addr.arpa» нет записи PTR, Dns.GetHostEntry () ничего не вернет полезно.

Аналогичным образом, многие серверные фермы просто дадут вам общее имя хоста, например 123.45.67.89-dedicated.bigexamplehost.com.

То, что делает yougetsignal, отличается, это «Пассивная репликация DNS». Они запускают некоторые DNS-серверы, которые запрашивают люди, и запоминают каждое имя хоста, которое было найдено. Затем вы можете запросить их записи прошлых поисков по адресу, который был возвращен. Поместите 74.50.106.245 в yougetsignal, и вы получите список имен хостов, которые ранее были разрешены для сервера dailywtf, когда люди их запрашивали, а не к записи Reverse DNS PTR.

2 голосов
/ 04 апреля 2009

Обратный DNS отличается от того, что вы спрашиваете (, какие сайты размещены на одном сервере ). Обратный DNS обычно не работает так, как вы ожидаете (см. Ответ Бобинса).

Чтобы иметь возможность идентифицировать другие веб-сайты на хосте, вам необходимо создать массивную базу данных и сохранить как можно больше записей DNS, а затем сопоставить IP-адреса.

Выезд: http://www.domaintools.com/reverse-ip/

Они делают это так, как я сказал, это единственный способ получить точные результаты. Очевидно, что для корреляции и сканирования / генерации этих данных требуются время, процессор, пропускная способность и пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...