gpt4 book ai didi

c++ - 检查私有(private)IP地址是否被使用

转载 作者:行者123 更新时间:2023-11-27 22:56:52 24 4
gpt4 key购买 nike

据我了解,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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com