查找子网中的所有IP 我正在使用C++开发一个代码用于我们的项目,我的代码必须返回一个子网中所有可用的IPS的列表,所以我有这样的场景:
获取我的子网查找子网中的所有IP 我正在使用C++开发一个代码用于我们的项目,我的代码必须返回一个子网中所有可用的IPS的列表,所以我有这样的场景:,c++,ip,C++,Ip,获取我的子网 使用for循环测试子网中的每个IP,例如: for (int i = 0; i < 254; i++) { testip(X, X, X, i); /* if IP is valid */ vectoriplist.push_back(X, X, X, i); } for(int i=0;i
for
循环测试子网中的每个IP,例如:
for (int i = 0; i < 254; i++)
{
testip(X, X, X, i);
/* if IP is valid */
vectoriplist.push_back(X, X, X, i);
}
for(int i=0;i<254;i++)
{
testip(X,X,X,i);
/*如果IP有效*/
向量论者。推回(X,X,X,i);
}
我在for循环中使用
coonect()
和getpeername()
函数。要获取子网中的所有有效ip地址取决于您所称的有效ip地址,该地址是其相应硬件响应ping请求的地址吗?然后,您可以尝试使用简单的SYN/ACK tcp ping假设网络是本地链路,即通过您的链路可见,您可以使用每个IPv4子网都有一个广播地址这一事实。对于IPv6,只需对ff02::1(所有节点地址)执行简单的ping即可。您可以使用fping在子网中查找有效节点。但请注意,一些主机可能会根据其防火墙设置,选择忽略对任意端口的ICMP回显请求(也称为ping)和TCP SYN。ARP可能更可靠,虽然它是链接本地too。谢谢,但是有C++代码示例吗?