据我了解,DHCP 会自动为设备分配 IP 地址。如果我想在主机(Windows 主机)专用网络中手动设置设备的 IP 地址,范围为 192.168.0.0 - 192.168.255.255 。我如何检查该地址是否已被占用。
我想编写一个函数,通过私有(private)网络范围内的有效地址递增。如果有效且未使用,则返回该地址。我需要一些方法来实现 ip_is_valid(int*ip_addr)
函数。
bool assign_ip( int* ip_addr)
{
int new_ip_addr[4] = {192,168,0,0};
for (int i = 0; i < 255; i++)
{
new_ip_addr[2] = i
for (int j = 0; j <255; j++)
{
new_ip_addr[3] = i;
if (ip_is_valid(new_ip_addr))
{
ip_addr[0] = new_ip_addr[0];
ip_addr[1] = new_ip_addr[1];
ip_addr[2] = new_ip_addr[2];
ip_addr[3] = new_ip_addr[3];
return(true);
}
}
}
return(false);
}
我可以使用哪些现有的 C++ 库来访问当前发布的 IP,或者我可以使用什么简单的方法来检查 IP 是否被使用(ping?)。
编辑:我想我可能没有表述我原来的问题。我使用的“网络”只是 PC 的专用寻址空间。它是本地的和孤立的。例如,如果我插入以太网设备,PC 会为其分配一个在 192.168.0.0 - 192.168.255.255 范围内的私有(private) IP 地址。仅供主机使用。我设置的手动地址是临时的。将使用不到一分钟然后丢弃。我不担心任何网络限制或问题,只是我如何检查 ip 是否已被使用。
最佳答案
不要那样做。即使它可行,您也无法阻止您的 DHCP 服务器稍后将该地址分配给另一台机器。
您应该在配置中限制您的 DHCP 服务器使用的地址范围。然后您可以静态分配其余地址。
关于c++ - 检查私有(private)IP地址是否被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930376/