想知道是否有人可以在这里帮助我。我对c#的了解不多,但对于我想做的事情来说很容易。

我正在制作一个小型应用程序,它将使用网络上的主机名,然后返回完整的ipaddress(ipv4)...。从那里,我可以选择ping / vnc / telnet ... etc。

我的问题在这里...我正在使用GetHostEntry返回IP地址。然后,我想将IP存储到变量中,并更改最后一个八位位组。我想一个简单的sting.split('.')是答案,但是我不能将IP转换为字符串,因为源不是字符串。有任何想法吗?

这是我获取IP地址的方法,它只是基本的GetHostEntry方法:

IPHostEntry host = Dns.GetHostEntry( hostname );

Console.WriteLine( "GetHostEntry({0}) returns: {1}", hostname, host );

// This will loop though the IPAddress system array and echo out
// the results to the console window

foreach ( IPAddress ip in host.AddressList )
{
    Console.WriteLine( "    {0}", ip );
}

最佳答案

这是一种相当脆弱的方法,它依赖于计算机的字节顺序,并且显然取决于所提供地址的族。

byte[] ipBytes = ip.GetAddressBytes();
while (ipBytes[0]++ < byte.MaxValue)
{
  var newIp = new IPAddress(ipBytes);
  Console.WriteLine("    {0}", ip);
}

07-25 22:40