为什么当我做DNS查找时,我会得到套接字异常或错误的数据
本文关键字:异常 套接字 错误 数据 DNS 查找 为什么 | 更新日期: 2023-09-27 17:50:40
当我打开firefox并输入"209.191.122.70"作为URL并按回车键时,它立即解析为"http://failsafe.fp.yahoo.com/404.html"
我的目标是以编程的方式检索相同的信息。
当我使用以下代码时,要么我以SocketException结束,要么我以主机名结束,该主机名看起来不像我使用firefox时得到的url。
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在地址栏中检索文本之外,我如何检索我正在寻找的信息?
IP地址的反向查找不是 Firefox在这里所做的。
Firefox只是向该IP发出一个http get。
在Pseudo代码中(因为我目前无法访问编译器),相当于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.
}
System.Windows.Forms.WebBrowser类帮助我获得了我正在寻找的信息