Qt开发 打算写一个接口,来测试是否能够ping通指定的ip

Qt开发 打算写一个接口,来测试是否能够ping通指定的ip,第1张

就自己新建一个类,在类的h文件里里面新建一个slot 修饰的函数,然后在对应的c文件中具体实现这个函数,比如要用到socket,要如何连接,如何发送数据包,再等待接受回应,如何判断是否发送与接收一致,再处理。就OK了。

MFC:

---------------在StdAfxh中加入---------------------

#include <winsock2h>    //套接字编程需要的头文件

#pragma  comment(lib,"ws2_32lib") //套接字编程需要的库文件

---------------在要用的地方---------------------

 WSADATA wsadata;

 if(0 != WSAStartup(MAKEWORD(2, 2), &wsadata))   //初始化

 {

  AfxMessageBox("初始化网络环境失败!");

  return TRUE;

 }

 char szHostName[MAX_PATH + 1];

 gethostname(szHostName, MAX_PATH);  //得到计算机名

 hostent p = gethostbyname(szHostName); //从计算机名得到主机信息

 if(p == NULL)

 {

  AfxMessageBox("得到本机网络信息失败!");

  return TRUE;

 }

 m_strName = szHostName;       //保存主机名

 int nCount = 0;                 //保存主机地址

 char pIP = inet_ntoa((in_addr )p->h_addr_list[0]);//将32位IP转化为字符串IP

 m_strAddr = pIP;             //保存主机IP地址

    UpdateData(FALSE);          //显示各个数据

 WSACleanup();               //释放Winsock API

QT:

QString Widget::getIP()  //获取ip地址  

{  

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

    foreach (QHostAddress address, list)  

    {  

       if(addressprotocol() == QAbstractSocket::IPv4Protocol)  

//我们使用IPv4地址  

            return addresstoString();  

    }  

       return 0;  

}  

或者

QString localHostName = QHostInfo::localHostName();  

  

qDebug() <<"localHostName:"<<localHostName;  

QHostInfo info = QHostInfo::fromName(localHostName);    

foreach(QHostAddress address,infoaddresses())    

{  

    if(addressprotocol() == QAbstractSocket::IPv4Protocol)              

        qDebug() <<"IPV4 Address: "<< addresstoString();    

}

另外,如果是windows系统:

可以参考:>

以上就是关于Qt开发 打算写一个接口,来测试是否能够ping通指定的ip全部的内容,包括:Qt开发 打算写一个接口,来测试是否能够ping通指定的ip、C/C++ 如果获取本机IP和修改IP,代码尽量要简介,本人菜鸟、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9593532.html

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

发表评论

登录后才能评论

评论列表(0条)

保存