C#DNS.GetHostEntry()..新的网络编程程序员

时间:2013-02-17 16:40:02

标签: c#

我对C#真的不熟悉,自从我使用这种语言进行编程已有多年了。我要发布我的代码,它有构建错误。这就是我想要做的,但我真的不确定如何继续。我撞墙了,真的不知道怎么办:

输入地址(作为字符串) 使用适当的函数解析地址 打印出完整的主机信息

   using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace CSDNS
{
    class Program
    {
        static void PrintHostInfo(String host)
        {
            {
                IPHostEntry hostinfo;

                try
                {

                    hostinfo = Dns.GetHostEntry("www.sunybroome.edu"); // DNS Name Resolution

                    //
                    // The IP address is now in hostinfo structure
                    // Print out the contents of hostinfo structure
                    // in an easily readable form with labels. For
                    // example, the host name can be output using:


                    Console.WriteLine("Hostname = {0}\n", hostinfo.HostName);
                }

                catch
                {
                    // Print out the exception here...
                }



                try
                {
                    IPHostEntry hostInfo;

                    //Attempt to resolve DNS for given host or address
                    hostInfo = Dns.Resolve(host);

                    //Display the primary host name
                    Console.WriteLine("\tCanonical Name: " + hostInfo.HostName);

                    //Display list of IP addresses for this host
                    Console.Write("\tIP Addresses:  ");
                    foreach (IPAddress ipaddr in hostInfo.AddressList)
                    {
                        Console.Write(ipaddr.ToString() + " ");
                    }
                    Console.WriteLine();

                    //Display list of alias names for this host
                    Console.Write("\tAliases:       ");
                    foreach (String alias in hostInfo.Aliases)
                    {
                        Console.Write(alias + " ");
                    }
                    Console.WriteLine("\n");
                }
                catch (Exception)
                {
                    Console.WriteLine("\tUnable to resolve host: " + host + "\n");
                }
            }
        }

        static void Main(string[] args)
        {

            //Get and print local host info
            try
            {
                Console.WriteLine("Local Host:");
                String localHostName = Dns.GetHostName();
                Console.WriteLine("\tHost Name:      " + localHostName);

                PrintHostInfo(localHostName);
            }
            catch (Exception)
            {
                Console.WriteLine("Unable to resolve local host\n");
            }

            //Get and print info for hosts given on command line 
            foreach (String arg in args)
            {
                Console.WriteLine(arg + ":");
                PrintHostInfo(arg);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将host传递给Resolve方法,而不是hostInfo(即包含您要解析的主机的字符串):

hostInfo = Dns.Resolve(host);