QT 获取本机电脑真实ip地址
时间: 2023-08-23 21:05:50 浏览: 53
你可以使用 QNetworkInterface 类获取本机的 IP 地址。以下是一个示例代码:
```cpp
#include <QtNetwork>
QString getLocalIP()
{
foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
{
if (interface.flags().testFlag(QNetworkInterface::IsUp) && !interface.flags().testFlag(QNetworkInterface::IsLoopBack))
{
foreach(QNetworkAddressEntry entry, interface.addressEntries())
{
if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)
{
return entry.ip().toString();
}
}
}
}
return QString();
}
```
该函数返回本机的 IPv4 地址。如果返回空字符串,则表示未找到可用的 IPv4 地址。
相关问题
QT 获取本机真实ip地址
你可以使用QNetworkInterface类来获取本机的真实IP地址。以下是获取本机IPv4地址的示例代码:
```cpp
#include <QNetworkInterface>
#include <QDebug>
QList<QHostAddress> getLocalIPv4()
{
QList<QHostAddress> list;
QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
foreach (QNetworkInterface interface, interfaces)
{
if (interface.flags().testFlag(QNetworkInterface::IsUp) && !interface.flags().testFlag(QNetworkInterface::IsLoopBack))
{
QList<QNetworkAddressEntry> entries = interface.addressEntries();
foreach (QNetworkAddressEntry entry, entries)
{
if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)
{
list.append(entry.ip());
}
}
}
}
return list;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList<QHostAddress> addresses = getLocalIPv4();
foreach (QHostAddress address, addresses)
{
qDebug() << address.toString();
}
return a.exec();
}
```
此代码将获取本机所有可用的IPv4地址并将其打印到控制台上。
qt 获取本机IP地址
可以使用Qt中的QNetworkInterface类来获取本机的IP地址。以下是一个简单的示例代码:
```cpp
#include <QNetworkInterface>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList<QHostAddress> ipAddressesList;
QList<QNetworkInterface> interfaceList = QNetworkInterface::allInterfaces();
for (int i = 0; i < interfaceList.count(); i++) {
QNetworkInterface interface = interfaceList.at(i);
if (interface.flags() & QNetworkInterface::IsUp) {
ipAddressesList.append(interface.addressEntries().at(0).ip());
}
}
qDebug() << "IP Addresses:" << ipAddressesList;
return a.exec();
}
```
该程序通过获取所有的网络接口列表,然后筛选出已经启用的网络接口,并获取其IP地址。最后将获取到的IP地址输出到控制台。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)