qt获取linux的ip
时间: 2024-11-12 12:32:23 浏览: 3
在Qt中,如果你想获取Linux系统的IP地址,你可以使用`QNetworkInterface`类来查询网络接口的信息。这里是一个基本的例子,展示如何获取所有可用的IP配置:
```cpp
#include <QObject>
#include <QNetworkInterface>
class IpGetter : public QObject
{
public slots:
void getIpAddresses()
{
foreach (const QNetworkInterface &interface, QNetworkInterface::allInterfaces()) {
if (interface.isUp() && !interface.isLoopback()) {
QString ipAddress = interface.ipAddress().toString();
emit newIpAddressFound(ipAddress);
qDebug() << "Interface: " << interface.name() << ", IP Address: " << ipAddress;
}
}
}
signals:
void newIpAddressFound(const QString &ipAddress);
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
IpGetter ipGetter;
connect(&ipGetter, &IpGetter::newIpAddressFound, this, [] (QString ip) {
qDebug() << "Received IP address: " << ip;
});
ipGetter.getIpAddresses();
return app.exec();
}
```
这段代码创建了一个名为`IpGetter`的槽函数,它遍历所有网络接口,检查是否处于活跃状态且不是回环接口。对于每个有效的接口,它获取并发送一个信号`newIpAddressFound`,携带新找到的IP地址。
运行这个应用后,你可以在终端看到新接收到的IP地址。
阅读全文