【发布时间】:2015-11-03 00:08:45
【问题描述】:
据我了解,DHCP 会自动为设备分配 IP 地址。如果我想在 192.168.0.0 - 192.168.255.255 范围内手动设置主机(Windows 主机)专用网络中设备的 IP 地址。我如何检查该地址是否已被占用。
我想编写一个函数,该函数将通过专用网络范围内的有效地址递增。如果有效且未使用,则返回该地址。我需要一些方法来实现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 的私有 IP 地址。仅供主机使用。我设置的手动地址是临时的。将使用不到一分钟然后丢弃。我不担心任何网络限制或问题,只是我如何检查 IP 是否已被使用。
【问题讨论】:
标签: c++ network-programming ip