我需要从 DHCP 获取一个可用的 IP。我尝试获取任何 IP 地址并开始 ping 下一个,直到到达一个没有响应的地址为止。
public static IPAddress FindNextFree(this IPAddress address)
{
IPAddress workingAddress = address;
Ping pingSender = new Ping();
while (true)
{
byte[] localBytes = workingAddress.GetAddressBytes();
localBytes[3]++;
if (localBytes[3] > 254)
localBytes[3] = 1;
workingAddress = new IPAddress(localBytes);
if (workingAddress.Equals(address))
throw new TimeoutException("Could not find free IP address");
PingReply reply = pingSender.Send(workingAddress, 1000);
if (reply.Status != IPStatus.Success)
{
return workingAddress;
}
}
}
但是,有时DHCP 会为某些计算机保留特殊地址,因此我需要从dhcp 获取可用的IP 地址。 我如何在 C# 中实现它?
最佳答案
这不是你使用它的正确方式, 你应该向 DHCP 服务器请求一个新的 ip 然后接受它, 在此处阅读有关与 DHCP 服务器通信的信息
http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
关于c# - 获取未使用的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19273764/