【问题标题】:Dns NameServer Query C#Dns NameServer 查询 C#
【发布时间】:2014-08-20 13:48:48
【问题描述】:

我正在尝试查询一个网址并获取当前的非缓存结果,例如根名称服务器和管理联系人电子邮件。 能否请您指向我的指南,其中包含有关如何实现此目的的示例代码。 谢谢 汤米

【问题讨论】:

  • 什么是“根名称服务器”?可以通过 whois 查询找到域的联系信息,但应使用 DNS 查询找到域的名称服务器等操作信息。

标签: c# dns hostname whois


【解决方案1】:

您似乎需要查找 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();
}

【讨论】:

  • 对于每个 TLD,您最好使用注册 TLD whois 服务器。
猜你喜欢
  • 2013-01-30
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多