Получить сервер сайта с IP-адреса - PullRequest
4 голосов
/ 21 апреля 2010

У меня есть функция, которая возвращает сервер веб-сайта при вводе URL-адреса для сайта:

private string GetWebServer()
{
    string server = string.Empty;

    //get URL
    string url = txtURL.Text.Trim().ToLower();
    if (!url.StartsWith("http://") && !url.StartsWith("https://"))
        url = "http://" + url;

    HttpWebRequest request = null;
    HttpWebResponse response = null;

    try
    {
        request = WebRequest.Create(url) as HttpWebRequest;
        response = request.GetResponse() as HttpWebResponse;

        server = response.Headers["Server"];
    }
    catch (WebException wex)
    {
        server = "Unknown";
    }
    finally
    {
        if (response != null)
        {
            response.Close();
        }
    }

    return server;
}

Я хотел бы также иметь возможность получить сервер веб-сайта с IP-адреса вместо URL-адреса сайта. Но если я ввожу IP-адрес, я получаю сообщение об ошибке «Неверный URI: невозможно определить формат URI». при вызове WebRequest.Create (url).

Кто-нибудь знает, как я могу изменить это, чтобы выполнить то, что я хочу?

Ответы [ 3 ]

2 голосов
/ 21 апреля 2010

В противном случае вы можете найти имя по IP-адресу и затем использовать адрес в других ваших вызовах:

System.Net.Dns.GetHostEntry("127.0.0.1").HostName.ToString()
1 голос
/ 21 апреля 2010

Один IP может обслуживать несколько доменов. Вы не будете иметь отображение 1: 1. То, что вы пытаетесь сделать, это обратный поиск DNS. Существует множество веб-сервисов, которые предоставляют неполный список доменов, обслуживаемых с IP. Однажды мне пришлось использовать их комбинацию, чтобы получить более полный список.

Вот небольшой список таких сайтов:

  1. http://remote.12dt.com/
  2. http://www.guerrilladns.com/

И я уже использовал следующий поиск DNS, который также находит другие домены, обслуживаемые тем же IP:

  1. http://www.robtex.com/dns/
1 голос
/ 21 апреля 2010

Используете ли вы этот же метод при использовании IP-адреса? Эта ошибка будет выдана, если к IP-адресу не добавлено «http://"».

...