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的前两段一样,所以只用判断后两段即可。

麻烦把代码发我
展开
 我来答
风若远去何人留
2013-11-08 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

供参考

#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 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
wanglei980823
2013-11-07 · TA获得超过103个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:76.7万
展开全部
IPV4 的话先转换为32位的二进制数,开始地址步进1,算到目标地址不就完事了么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式