qt或者C++怎么获取某个P段中的所有IP地址?
假如用户输入以下IP段:起始IP:42.110.1.10结束IP:42.110.5.230请问怎么获取这个IP段中的所有IP注意:输入时要求起始IP和结束IP的前两段一样...
假如用户输入以下IP段:
起始IP:42.110.1.10
结束IP:42.110.5.230
请问怎么获取这个IP段中的所有IP
注意:输入时要求起始IP和结束IP的前两段一样,所以只用判断后两段即可。
麻烦把代码发我 展开
起始IP:42.110.1.10
结束IP:42.110.5.230
请问怎么获取这个IP段中的所有IP
注意:输入时要求起始IP和结束IP的前两段一样,所以只用判断后两段即可。
麻烦把代码发我 展开
2个回答
展开全部
供参考
#include <stdio.h>
#include <string.h>
unsigned long str_to_hex(char *str)
{
char *p = str;
int i = 0;
unsigned long ret = 0;
unsigned char tmp;
if(str == NULL || strlen(str) > 15) return 0;
while(1)
{
if(str[i] == '.' || str[i] == 0)
{
tmp = 0;
while(p < str + i)
{
tmp *=10;
tmp += (*p) - '0';
p ++;
}
p ++;
ret |= tmp;
if(str[i] == 0) break;
ret <<= 8;
}
i ++;
}
return ret;
}
void hex_to_str(unsigned long hex, char *str)
{
sprintf(str, "%d.%d.%d.%d", hex>>24, hex >> 16 & 0xff, hex >> 8 & 0xff, hex &0xff);
}
int main()
{
char start[16];
char end[16];
char buffer[16];
unsigned long start_h, end_h, i;
printf("input start:\n");
scanf("%s", start);
printf("input end\n");
scanf("%s", end);
start_h = str_to_hex(start);
end_h = str_to_hex(end);
for(i = start_h; i <= end_h; i ++)
{
hex_to_str(i, buffer);
printf("%s\n", buffer);
}
return 0;
}
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询