作者:you是was的was | 来源:互联网 | 2023-10-11 13:52
一、环境介绍Qt:5.12.6操作系统:win10(64位)二、软件效果与功能介绍功能:域名解析(域名转IP)三、核心代码3.1widget.cpp#includew
一、环境介绍
Qt: 5.12.6
操作系统: win10 (64位)
二、软件效果与功能介绍
功能: 域名解析(域名转IP)
三、核心代码
3.1 widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}/*
工程: SmartHome
日期: 2021-04-26
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 日志显示
*/
void Widget::Log_Text_Display(QString text)
{QPlainTextEdit *plainTextEdit_log=ui->plainTextEdit_log;//设置光标到文本末尾plainTextEdit_log->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);//当文本数量超出一定范围就清除if(plainTextEdit_log->toPlainText().size()>1024*4){plainTextEdit_log->clear();}plainTextEdit_log->insertPlainText(text);//移动滚动条到底部QScrollBar *scrollbar = plainTextEdit_log->verticalScrollBar();if(scrollbar){scrollbar->setSliderPosition(scrollbar->maximum());}
}//当解析成功域名后,会调用lookedUp槽函数
void Widget::lookedUp(const QHostInfo &host)
{if (host.error() != QHostInfo::NoError) {Log_Text_Display(host.errorString()+"\n");return;}foreach (QHostAddress address, host.addresses()){Log_Text_Display(address.toString()+"\n");}
}/*
工程: IP_Addr_Analysis
日期: 2021-06-01
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 域名解析
*/
void Widget::on_pushButton_ip_get_clicked()
{//先调用 命令nslookup解析域名,再调用QHostInfo解析,有些域名QHostInfo解析不了。//多此一举使用QHostInfo的原因是,懒得解析字符串,QHostInfo信号里直接读取IP地址。QProcess process;process.start(QString("nslookup %1").arg(ui->lineEdit_ip_name->text()));process.waitForFinished(5000);Log_Text_Display(process.readAll()+"\n");QHostInfo::lookupHost(ui->lineEdit_ip_name->text(),this, SLOT(lookedUp(QHostInfo)));
}/*
工程: IP_Addr_Analysis
日期: 2021-06-01
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 清除数据
*/
void Widget::on_pushButton_clean_clicked()
{ui->plainTextEdit_log->clear();
}
3.2 widget.h
#ifndef WIDGET_H
#define WIDGET_H#include
#include
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void lookedUp(const QHostInfo &host);void Log_Text_Display(QString text);void on_pushButton_ip_get_clicked();void on_pushButton_clean_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H