QT获取IP地址
Qt 获取 IP地址
2023-09-14 09:07:01 时间
1、.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QHostInfo>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
void lookedUp(const QHostInfo &host);
QString returnOutIP();
QString GetHtml(QString url);
QString GetNetIP(QString webCode);
};
#endif // MAINWINDOW_H
2、获取计算机名
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtNetwork>
/*外网ip*/
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QEventLoop>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//计算机名字
QString localHostName = QHostInfo::localHostName();
qDebug() <<"localHostName: "<<localHostName;
}
MainWindow::~MainWindow()
{
delete ui;
}
运行输出的信息:localHostName: “DESKTOP-UMXXXXX”
3、IPv4、IPV6 地址
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtNetwork>
/*外网ip*/
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QEventLoop>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//计算机名字
QString localHostName = QHostInfo::localHostName();
//qDebug() <<"localHostName: "<<localHostName;
//IPv6 地址
QHostInfo info = QHostInfo::fromName(localHostName);
qDebug() <<"IP Address: "<<info.addresses();
//IPV4 地址
QHostAddress address;
info.addresses();
if(address.protocol() == QAbstractSocket::IPv4Protocol)
qDebug() << address.toString();
if(address.protocol() == QAbstractSocket::IPv6Protocol)
qDebug() << address.toString();
}
MainWindow::~MainWindow()
{
delete ui;
}
运行输出的信息:IP Address: (QHostAddress(“fe80::XXXX:XXXX:XXXX:XXXX%XX”), QHostAddress(“fe80::XXXX:XXXX:XXXX:XXXX%XX”), QHostAddress(“fe80::XXXX:XXXX:XXXX:XXXX%XX”), QHostAddress(“fe80::XXXX:XXXX:XXXX:XXXX%XX”), QHostAddress(“192.168.XXX.X”), QHostAddress(“192.168.XXX.X”), QHostAddress(“192.168.XXX.X”), QHostAddress(“192.168.XXX.X”))
4、外网地址
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtNetwork>
/*外网ip*/
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QEventLoop>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//获取公网IP
QString qstr=returnOutIP();
qDebug() << qstr;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::lookedUp(const QHostInfo &host)
{
qDebug() << host.addresses().first().toString();
}
QString MainWindow::returnOutIP()
{
return GetNetIP(GetHtml("http://www.3322.org/dyndns/getip"));
}
QString MainWindow::GetHtml(QString url)
{
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));
QByteArray responseData;
QEventLoop eventLoop;
QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));
eventLoop.exec();
responseData = reply->readAll();
return QString(responseData);
}
QString MainWindow::GetNetIP(QString webCode)
{
QString tmp = webCode.split("[").last();
return tmp.split("]").first();
}
运行输出的信息:“123.XXX.XXX.XXX\n”
链接:
https://blog.csdn.net/qq_37529913/article/details/107970461
相关文章
- 树莓派基于QT实现利用USB转485模块进行串口通讯「建议收藏」
- 什么是QT[通俗易懂]
- C++Qt入门(1)—Qt简介,第一个Qt程序,Qt按钮
- Linux开发_CentOS7.4服务器安装NFS、NGINX服务器,ffmpeg、Qt环境
- Qt Quick 用cmake怎么玩子项目
- qt plaintextedit使用_qt获取lineedit的内容
- Qt导出exe程序并打包
- QT编写一个JLINK烧录工具
- C/C++ Qt 基本文件读写方法
- C/C++ Qt TreeWidget 嵌套节点操作技巧
- Qt 6中的异步操作
- 编程在Linux下学习Qt界面编程(linux下qt界面)
- Qt QTableWidget及基本操作(详解版)
- Qt 实现 Linux 串口通信编程(qt串口linux)
- 编程Linux下Qt桌面编程入门指南(linuxqt桌面)
- Linux下安装qt:指南及目录(qt在linux安装目录)
- 使用Qt快速连接MySQL数据库(qt连接mysql)
- Linux上安装Qt绘图库的指南(linuxqt安装)
- Linux下Qt实现串口通信(linux下qt串口)
- 深入体验Linux Qt界面开发之旅(linuxqt界面开发)
- 开发Linux下 Qt开发:从入门到精通.(linux下的qt)
- 的整合『使用 Qt 与MySQL实现创新性的数据库应用』(qt与mysql)
- 使用QT连接MySQL数据库(qt数据库mysql)
- 如何在Linux上运行QT程序?(linux运行qt程序)
- 深入浅出:使用Qt连接MSSQL(qt 连接mssql)
- 使用Qt快速搭建MySQL数据库连接(qtmysql连接)