2

アドレスを IP に解決できません。コード スニペットを以下に示します。ブラウザで Google にアクセスできたにもかかわらず、No such host is known 例外が発生し続けます (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
}
4

3 に答える 3

3

コードに問題はありません。Web ブラウザから www.google.com にアクセスできる場合、次に考えられる問題は、Web ブラウザがプロキシ サーバーを使用していることです。Web ブラウザは実際には、ファイアウォールの通過が許可されているプロキシ サーバー経由で www.google.com にアクセスしています。あなたが作成した単純なアプリケーションは、ファイアウォールの通過が許可されておらず、例外が発生しています。

これは、Internet Explorer のプロキシ設定を調べることで確認できます。

ツール -> オプション -> 接続 -> LAN 設定

設定のプロキシ サーバー グループがあります。値が存在する場合、これはほぼ間違いなく問題です。

于 2008-11-14T07:54:02.097 に答える
2

プロキシを設定する必要があります。

次のすべての呼び出しに対して設定する必要があるスニペットを次に示します。

    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;
    }
于 2008-11-14T09:02:04.333 に答える
1

ブラウザからではなく、コマンド ラインから www.google.com (または他のホスト) に ping を実行してみてください。

ping 自体は機能しない可能性がありますが、最初に IP アドレスの解決が表示されるはずです。次のようなエラー メッセージが表示された場合:

    Ping 要求は、ホスト www.google.com を見つけることができませんでした。
    名前を確認して、もう一度お試しください。

その場合、ブラウジング中にプロキシ サーバーが DNS ルックアップを行っている可能性が高く、DNS サーバーが機能していないか、マシンのネットワーク設定が正しくありません。

于 2008-11-14T08:47:48.137 に答える