
供参考
#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地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)