我正在尝试为学校完成一个项目,该项目涉及我提示用户输入IP地址,然后显示与之关联的主机名。我是C#的新手。
这是我到目前为止的代码:
Console.WriteLine("Enter an IP address:"); //prompt user to input IP address
string host = Console.ReadLine();
IPHostEntry hostEntry;
hostEntry = NewMethod(host);
if (hostEntry.AddressList.Length > 0)
{
var ip = hostEntry.AddressList[0];
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
s.Connect(ip, 80);
}
}
private static IPHostEntry NewMethod(string host)
{
return Dns.GetHostEntry(host); // NEED FIX
}
}
具有“需要修复”的部分是出现错误的地方。提前致谢!
编辑:我如何能够以这种格式显示结果:“xxxx的主机名是:hhhhhh”,其中'xxxx'是用户输入的IP地址,'hhhhh'是IP的主机名?
EDIT(对于StackOverflow):我的问题对于此实例更具体,并且不是关于NullException问题的一般性问题。
答案 0 :(得分:0)
host
永远不会设置,因此您将null
传递给生成异常的Dns.GetHostEntry
。
在程序开始时,您似乎需要从用户那里读取IP地址:
Console.WriteLine("Enter an IP address:"); //prompt user to input IP address
string host = Console.ReadLine();