QT应用编程: 域名解析(域名转IP)

简介: QT应用编程: 域名解析(域名转IP)

一、环境介绍

Qt:  5.12.6

操作系统:  win10 (64位)

二、软件效果与功能介绍

功能:  域名解析(域名转IP)

image.png

image.png

三、核心代码

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


目录
相关文章
|
2月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
备案成功以后,也解析了为什么没办法通过域名收到网站呢
网站备案成功后仍无法通过域名访问,可能涉及解析设置错误、服务器配置问题或网络限制等原因。本文将详细分析常见原因并提供解决方案。
|
11月前
|
域名解析 缓存 网络协议
减少域名dns解析时间
域名解析中的TTL值设置多少合适
658 5
|
9月前
|
域名解析 弹性计算 负载均衡
新手上云教程参考:阿里云服务器租用、域名注册、备案及域名解析流程图文教程
对于想要在阿里云上搭建网站或应用的用户来说,购买阿里云服务器和注册域名,绑定以及备案的流程至关重要。本文将以图文形式为您介绍阿里云服务器购买、域名注册、备案及绑定的全流程,以供参考,帮助用户轻松上手。
|
11月前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
313 5
Java 并发编程——volatile 关键字解析
|
11月前
|
缓存 Java 调度
多线程编程核心:上下文切换深度解析
在现代计算机系统中,多线程编程已成为提高程序性能和响应速度的关键技术。然而,多线程编程中一个不可避免的概念就是上下文切换(Context Switching)。本文将深入探讨上下文切换的概念、原因、影响以及优化策略,帮助你在工作和学习中深入理解这一技术干货。
280 10
|
11月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
541 8
|
11月前
|
算法 调度 开发者
多线程编程核心:上下文切换深度解析
在多线程编程中,上下文切换是一个至关重要的概念,它直接影响到程序的性能和响应速度。本文将深入探讨上下文切换的含义、原因、影响以及如何优化,帮助你在工作和学习中更好地理解和应用多线程技术。
280 4
|
域名解析 网络协议 安全
反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性
在网络世界中,反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性。它在邮件服务器验证、网络安全等领域至关重要,帮助识别恶意行为,增强网络安全性。尽管存在配置错误等挑战,但正确管理下,反向DNS解析能显著提升网络环境的安全性和可靠性。
701 3

相关产品

  • 云解析DNS
  • 推荐镜像

    更多