此代码适用于我的系统而非服务器请帮我修复此错误。我不确定是什么错误..
这是我的部分代码......
private IPAddress getMyCurrentIP()
{
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
if (host.AddressList.Length == 1)
myCurrentIP = host.AddressList[0].ToString();
else
{
foreach (IPAddress address in host.AddressList)
{
if (address.AddressFamily == AddressFamily.InterNetwork)
{
if (IsLocal(address))
return address;
}
}
}
return null;
}
public bool IsLocal(IPAddress address)
{
if (address == null)
throw new ArgumentNullException("address");
byte[] addr = address.GetAddressBytes();
return addr[0] == 10
|| (addr[0] == 192 && addr[1] == 168)
|| (addr[0] == 172 && addr[1] >= 16 && addr[1] <= 31);
}
请帮我解决此错误...
答案 0 :(得分:0)
我不会编译给定的代码,因为你从未声明myCurrentIP
。此外,如果host.AddressList
中只有一个项目,则您的函数仍将返回null。
重写第一个条件:
if (host.AddressList.Length == 1)
{
return host.AddressList[0];
}
else
{
...
如果满足该条件,那将返回系统的第一个也是唯一的IPAddress。