我想在 IP 地址范围上执行一组网络任务。一旦范围大于 C 类网络,我就无法枚举该范围内的所有主机。
我希望能够使用网络掩码迭代网络的所有主机255.255.240.0
.
From: 192.168.0.100
To: 192.168.10.100
人们将如何处理这一问题?这一定是一个很常见的任务。我来自 Cocoa iPhone 编程的新手,所以 C 风格的解决方案将受到赞赏。 :-)
这段代码将快速向您介绍解释 IP 地址和迭代它所涉及的细微差别。
一旦您开始将 IP 地址视为 32 位无符号整数,事情就会变得非常简单。
#include <stdio.h>
int
main (int argc, char *argv[])
{
unsigned int iterator;
int ipStart[]={192,168,0,100};
int ipEnd[] = {192,168,10,100};
unsigned int startIP= (
ipStart[0] << 24 |
ipStart[1] << 16 |
ipStart[2] << 8 |
ipStart[3]);
unsigned int endIP= (
ipEnd[0] << 24 |
ipEnd[1] << 16 |
ipEnd[2] << 8 |
ipEnd[3]);
for (iterator=startIP; iterator < endIP; iterator++)
{
printf (" %d.%d.%d.%d\n",
(iterator & 0xFF000000)>>24,
(iterator & 0x00FF0000)>>16,
(iterator & 0x0000FF00)>>8,
(iterator & 0x000000FF)
);
}
return 0;
}
只需检查没有任何元素ipStart
and ipEnd
大于 255。
这不会是一个 IP 地址,它也会弄乱代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)