Не удалось разрешить IP - PullRequest
2 голосов
/ 14 ноября 2008

Как ни старайся, я не могу разрешить адрес по IP. Фрагмент кода показан ниже. Я продолжаю получать сообщение «Нет, такой хост является известным исключением», хотя я мог получить доступ к Google с помощью своего браузера (сервер DNS почти наверняка работает). Однако я за брандмауэром компании.

try
{
   foreach (IPAddress address in Dns.GetHostAddresses("www.google.com"))
   {
      Console.WriteLine(address.ToString());
   }
}
catch (SocketException e)
{
   Console.WriteLine("Source : " + e.Source); // System
   Console.WriteLine("Message : " + e.Message); // No such host is known
}

Ответы [ 3 ]

3 голосов
/ 14 ноября 2008

В вашем коде нет ничего плохого. Учитывая, что вы можете получить доступ к www.google.com из веб-браузера, следующая наиболее вероятная проблема заключается в том, что веб-браузер использует прокси-сервер. Веб-браузер фактически обращается к www.google.com через прокси-сервер, который разрешен через брандмауэр. Простое написанное вами приложение не пропускается через брандмауэр и приводит к исключению

Вы можете убедиться в этом, посмотрев настройки прокси в Internet Explorer.

Сервис -> Параметры -> Подключения -> Настройки локальной сети

Будет группа настроек прокси-сервера. Если есть ценность, это почти наверняка ваша проблема.

1 голос
/ 14 ноября 2008

Вам необходимо настроить прокси:

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

    protected void SetupProxy(string proxyUrl, string proxyLogin, string proxyPassword, string[] proxyBypass)
    {
        WebProxy proxy = new WebProxy(proxyUrl);
        proxy.Credentials = new NetworkCredential(proxyLogin, proxyPassword);
        proxy.BypassList = proxyBypass;
        proxy.BypassProxyOnLocal = true;
        WebRequest.DefaultWebProxy = proxy;
    }
1 голос
/ 14 ноября 2008

Вместо того, чтобы пробовать через браузер, попробуйте пинговать www.google.com (или другой хост, конечно) из командной строки.

Сам эхо-запрос может не работать, но сначала он должен показать разрешение IP-адреса. Если вы получите сообщение об ошибке, подобное этому:

    Ping request could not find host www.google.com.
    Please check the name and try again.

тогда, вероятно, прокси-сервер выполняет поиск DNS для вас, когда вы просматриваете, и ваш DNS-сервер либо не работает, либо сетевые настройки вашего компьютера неверны.

...