Проверка обратного IP-домена?
Существует веб-сайт, который вы можете запросить с доменом, и он вернет список всех сайтов, размещенных на этом IP-адресе. Я помню, что в С# был метод, который был чем-то вроде ReturnAddresses или что-то в этом роде. Кто-нибудь знает, как это делается? Запрос имени хоста или IP-адреса и возврат списка имен хостов на другие веб-сайты, размещенные на одном сервере?
веб-сайт: http://www.yougetsignal.com/tools/web-sites-on-web-server/
Ответы
Ответ 1
После прочтения комментариев, bobince определенно прав, и эти 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
Ответ 2
Ответ Джереми основан на обратном DNS, который является нормальным программным способом поиска IP- > hostname. Он полагается на запись PTR для этого сервера; это часто, но не всегда настроено на что-то полезное.
Например, посмотрите, thedailywtf.com, и вы получите 74.50.106.245, но поскольку нет записи PTR для "245.106.50.74.in-addr.arpa", Dns.GetHostEntry() ничего не вернет полезно.
Аналогично, многие серверные фермы просто дают вам общее имя хоста, например 123.45.67.89-dedicated.bigexamplehost.com.
То, что делает yougetignal, отличается, это "Пассивная репликация DNS". Они запускают некоторые DNS-серверы, которые запрашивают люди, и помнят каждое имя хоста, которое было просмотрено. Затем вы можете запросить свои записи прошлых запросов по адресу, который был возвращен. Поместите 74.50.106.245 в yougetsignal, и вы получите список имен хостов, которые ранее были разрешены на сервере dailywtf, когда люди запрашивали их, а не что-то сделать с записью PTR обратного DNS.
Ответ 3
Обратный DNS не такой же, как вы спрашиваете (какие сайты размещены на одном сервере). Обратный DNS обычно не работает, как вы ожидаете (см. Ответ bobince).
Чтобы идентифицировать другие веб-сайты на хосте, вам нужно создать массивную базу данных и хранить как можно больше записей DNS, а затем сопоставить IP-адреса.
Отъезд: http://www.domaintools.com/reverse-ip/
Они делают это так, как я сказал, это единственный способ получить точные результаты. Очевидно, для корреляции и сканирования или генерации этих данных требуется время, процессор, полоса пропускания и пространство.