QT应用编程: 域名解析(域名转IP)
【摘要】
一、环境介绍
Qt: 5.12.6
操作系统: win10 (64位)
二、软件效果与功能介绍
功能: 域名解析(域名转IP)
三、核心代码
3.1 widget.cpp
#include "widget.h"#include "ui_widget.h" Widget:...
一、环境介绍
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 <QWidget>
-
#include <QHostInfo>
-
#include <QScrollBar>
-
#include <QPlainTextEdit>
-
#include <QProcess>
-
QT_BEGIN_NAMESPACE
-
namespace Ui { class Widget; }
-
QT_END_NAMESPACE
-
-
class Widget : public QWidget
-
{
-
Q_OBJECT
-
-
public:
-
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
文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。
原文链接:xiaolong.blog.csdn.net/article/details/117446085
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)