【问题标题】:why do I get either a Socket Exception or the wrong data when I do a DNS lookup?为什么我在进行 DNS 查找时会收到 Socket 异常或错误的数据?
【发布时间】:2012-12-18 08:10:54
【问题描述】:

当我打开 Firefox 并输入“209.191.122.70”作为 URL 并按 Enter 键时,它立即解析为“http://failsafe.fp.yahoo.com/404.html”

我的目标是以编程方式检索相同的信息。

当我使用下面的代码时,要么我得到一个 SocketException,要么我得到一个看起来不像我使用 firefox 时得到的 url 的 HostName。

    static void Main(string[] args)
    {
        IPHostEntry entry = Dns.GetHostByAddress("209.191.122.70");
        Console.WriteLine(entry.HostName); //ir1.fp.vip.mud.yahoo.com
        Console.Read();
    }

当我尝试其他一些地址时,我得到的System.Net.Sockets.SocketException 显示“请求的名称有效,但未找到请求类型的数据”,堆栈跟踪如下所示:

 at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6, Boolean throwOnFailure)
 at System.Net.Dns.GetHostByAddress(String address)
 at reverseIP.Program.Main(String[] args) in C:\test\Program.cs:line 15

一些给我例外的地址在 Firefox 中解析得很好。

除了将 Firefox 作为一个单独的进程启动并使用 Windows API 检索地址栏中的文本之外,我如何检索我正在寻找的信息?

【问题讨论】:

  • 这可能是Http Redirect的结果。
  • 此站点在尝试连接到不受信任的站点时声誉不佳.. John 您尝试登录的站点是什么类型的站点..?即使使用 209.191.122.70
  • 这里是尝试访问该 IPAddress The certificate is only valid for the following names: www.yahoo.com , yahoo.com , us.yahoo.com , kr.yahoo.com , uk.yahoo.com , ie.yahoo.com , fr.yahoo.com , in.yahoo.com , ca.yahoo.com , br.yahoo.com , de.yahoo.com , es.yahoo.com , mx.yahoo.com , it.yahoo.com , sg.yahoo.com , id.yahoo.com , ph.yahoo.com , qc.yahoo.com , tw.yahoo.com , hk.yahoo.com , cn.yahoo.com , au.yahoo.com , ar.yahoo.com , vn.yahoo.com (Error code: ssl_error_bad_cert_domain)时的页面详细信息

标签: c# .net url dns ip-address


【解决方案1】:

IP 地址的反向查找不是 Firefox 在这里所做的。

Firefox 只是简单地向该 IP 发出一个 http get。

在伪代码中(因为我目前无法访问编译器)相当于 Firefox 所做的是

try {
 var request = WebClient.CreateRequest("http://209.191.122.70");
 request.GetResponse();
}
catch(WebException ex) {
 // handle 404 exception here.. You can access the response URL too.
}

【讨论】:

    【解决方案2】:

    System.Windows.Forms.WebBrowser 类帮助我获得了我正在寻找的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      相关资源
      最近更新 更多