记录自己在学习中遇到的问题:
在使用tcp时绑定自己的端口号时,每次都要手动输入或者在代码编写的时候固定死。就在想有没有便捷的方法,于是我便找到了一种不太美好的解决方法:
QList QNetworkInterface::allAddresses () [static] This convenience function returns all IP addresses found on the host machine. \It is equivalent to calling addressEntries() on all the objects returned by allInterfaces() to obtain lists of QHostAddress objects then calling QHostAddress::ip() on each of these. 程序中使用一个label来显示获取的ip,程序如下: #include <QtNetwork> ui->iplabel->setText(QNetworkInterface().allAddresses().at(0).toString()); //编译出错,需要在工程pro文件中添加,在 QT += core gui network
这样在我现在的电脑上运行可以自动获取到了。但是每台电脑上,ip地址的顺序可能略有不同,所以程序再换一个机子运行就还是会出现问题,与作者本意不符。
于是乎便又去寻找:
QHostAddress addr;
//通过遍历获取到本机ip
QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName());
foreach(QHostAddress address,info.addresses())
{
if(address.protocol()==QAbstractSocket::IPv4Protocol)
{
qDebug()<<address.toString(); //输出IPV4的地址
addr=address;
}
}
文章来源:https://www.toymoban.com/news/detail-506633.html
虽说打印了两次,但结果来说应该是可行的,后续再找到啥方法就再补充。文章来源地址https://www.toymoban.com/news/detail-506633.html
到了这里,关于QT 中获取本机ip的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!