qt或者C++怎么获取某个P段中的所有IP地址

qt或者C++怎么获取某个P段中的所有IP地址,第1张

供参考

#include <stdioh>

#include <stringh>

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;

}

这个是IPv6的地址,本来IPV6的地址的表示格式就是分号分隔的16进制字符串,说起来是没必要变成点分十进制的,也没有程序认。

你用protocol()方法检查是否等于QAbstractSocket::IPv4Protocol

QList<QNetworkInterface>InterfaceIpList=QNetworkInterface::allInterfaces();

for(inti=0;i<InterfaceIpListlength();i++)

{

if(InterfaceIpList[i]isValid())

{

foreach(QNetworkAddressEntry addressE , InterfaceIpList[i]addressEntries() )

{

if(addressEip()protocol()==QAbstractSocket::IPv4Protocol

&&addressEbroadcast()!=QHostAddress::Null)

{

NetInterfaceList<<addressEip()toString();

}

}

}

}

注意以上不包括回环地址127001和通配地址:0000

还有一个简单的方法:

QList<QHostAddress> InterfaceIpList=QNetworkInterface::allAddresses () ;

for(int i=0;i<InterfaceIpListlength();i++)

{

if(InterfaceIpList[i]protocol()==QAbstractSocket::IPv4Protocol)

{

NetInterfaceList<<InterfaceIpList[i]toString();

}

}

这个会包含非有效IP:即未连接的网卡缓存的IP地址,这个可能和系统有关。

你如果用hostinfo也得检查是否有效和过滤IP类型。

1按图1所示顺序打开cmd终端程序

2然后在命令行输入: ipconfig ,找到“IPv4地址”,其后面的就是你自己的IP地址

打开自己手机的热点,让电脑连接,然后在WLAN热点里点击“已连接设备”(如图4),之后就可以看到自己电脑的IP地址了,如图5所示

QTcpSocket QTcpServer::nextPendingConnection ()

QHostAddress QAbstractSocket::peerAddress ()

在具备TCP/IP的协议环境下,使用Nslookup命令。

nslookup最简单的用法就是查询域名对应的IP地址,包括A记录和CNAME记录,如果查到的是CNAME记录还会返回别名记录的设置情况。

格式:Nslookup 域名。

这个或许有人会说用ping命令也可以。但nslookup和ping 等命令最大的区别就是nslookup对方不在线也可以通过DNS获取对方ip。

进阶应用:nslookup -qt(必须小写)=类型 目标域名

对于普通建立了TCP/IP连接的用户,使用netstat命令。

具体步骤如下。

*** 作设备:戴尔电脑

*** 作系统:win10

1、首先在电脑桌面右下角找到网络图标,如图。

2、点击打开“网络和共享中心”界面,如图。

3、然后在“网络和共享中心”界面上,点击正在连接的网络,如图。

4、在d出的WLAN界面上,选择“详细信息”,如图。

5、最后在d出的界面上, ipv4后面的ip就是电脑的ip地址,如图就完成了。

以上就是关于qt或者C++怎么获取某个P段中的所有IP地址全部的内容,包括:qt或者C++怎么获取某个P段中的所有IP地址、windows下用qt获取本地IP地址,显示的格式好像是16进制的,如何转换成10进制、获取自己电脑的IP地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9560368.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存