Dns NameServer查询C#

时间:2014-06-30 08:29:39

标签: c# dns hostname whois

我正在尝试查询网址并获取当前的非缓存结果,例如根名称服务器和管理联系人电子邮件。 你能指点我一个指南,里面有关于如何实现这一目标的示例代码。 谢谢 托米

1 个答案:

答案 0 :(得分:1)

看起来你需要WhoIs查找。 DNS查找不会返回管理电子邮件。 DNS查找返回DNS记录,例如A,CNAME,MX和TXT记录。

对于whois查询,您需要从域所属的whois服务器查询WhoIs数据。以下代码段使用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();
}