【发布时间】:2014-08-20 13:48:48
【问题描述】:
我正在尝试查询一个网址并获取当前的非缓存结果,例如根名称服务器和管理联系人电子邮件。 能否请您指向我的指南,其中包含有关如何实现此目的的示例代码。 谢谢 汤米
【问题讨论】:
-
什么是“根名称服务器”?可以通过 whois 查询找到域的联系信息,但应使用 DNS 查询找到域的名称服务器等操作信息。
我正在尝试查询一个网址并获取当前的非缓存结果,例如根名称服务器和管理联系人电子邮件。 能否请您指向我的指南,其中包含有关如何实现此目的的示例代码。 谢谢 汤米
【问题讨论】:
您似乎需要查找 WhoIs。 DNS 查找不返回管理电子邮件。 DNS 查找返回 DNS 记录,例如 A、CNAME、MX 和 TXT 记录。
对于 whois 查询,您需要从域所属的 whois 服务器查询 WhoIs 数据。以下代码 sn-p 使用 NetworkStream 读取 .com 域的 WhoIs 数据:
// Create new socket object
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );
string query = "mydomain.com";
NetworkStream nst;
try
{
IPEndPoint endPoint = new IPEndPoint("whois.internic.net", 43)
socket.Connect(endPoint);
nst = new NetworkStream(socket, true);
string str;
StreamWriter writer = new StreamWriter(nst);
writer.WriteLine(query);
writer.Flush();
StringBuilder builder = new StringBuilder();
StreamReader reader = new StreamReader(nst);
while ((str = reader.ReadLine()) != null)
{
builder.Append(str);
builder.Append(
#if !NETCF
Environment.NewLine
#else
"\r\n"
#endif
);
}
result = builder.ToString();
}
finally
{
if (nst != null)
nst.Close();
socket.Close();
}
【讨论】: