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

举报
DS小龙哥 发表于 2021/12/09 22:58:14 2021/12/09
【摘要】 一、环境介绍 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


  
  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent)
  4. : QWidget(parent)
  5. , ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. }
  9. Widget::~Widget()
  10. {
  11. delete ui;
  12. }
  13. /*
  14. 工程: SmartHome
  15. 日期: 2021-04-26
  16. 作者: DS小龙哥
  17. 环境: win10 QT5.12.6 MinGW32
  18. 功能: 日志显示
  19. */
  20. void Widget::Log_Text_Display(QString text)
  21. {
  22. QPlainTextEdit *plainTextEdit_log=ui->plainTextEdit_log;
  23. //设置光标到文本末尾
  24. plainTextEdit_log->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
  25. //当文本数量超出一定范围就清除
  26. if(plainTextEdit_log->toPlainText().size()>1024*4)
  27. {
  28. plainTextEdit_log->clear();
  29. }
  30. plainTextEdit_log->insertPlainText(text);
  31. //移动滚动条到底部
  32. QScrollBar *scrollbar = plainTextEdit_log->verticalScrollBar();
  33. if(scrollbar)
  34. {
  35. scrollbar->setSliderPosition(scrollbar->maximum());
  36. }
  37. }
  38. //当解析成功域名后,会调用lookedUp槽函数
  39. void Widget::lookedUp(const QHostInfo &host)
  40. {
  41. if (host.error() != QHostInfo::NoError) {
  42. Log_Text_Display(host.errorString()+"\n");
  43. return;
  44. }
  45. foreach (QHostAddress address, host.addresses())
  46. {
  47. Log_Text_Display(address.toString()+"\n");
  48. }
  49. }
  50. /*
  51. 工程: IP_Addr_Analysis
  52. 日期: 2021-06-01
  53. 作者: DS小龙哥
  54. 环境: win10 QT5.12.6 MinGW32
  55. 功能: 域名解析
  56. */
  57. void Widget::on_pushButton_ip_get_clicked()
  58. {
  59. //先调用 命令nslookup解析域名,再调用QHostInfo解析,有些域名QHostInfo解析不了。
  60. //多此一举使用QHostInfo的原因是,懒得解析字符串,QHostInfo信号里直接读取IP地址。
  61. QProcess process;
  62. process.start(QString("nslookup %1").arg(ui->lineEdit_ip_name->text()));
  63. process.waitForFinished(5000);
  64. Log_Text_Display(process.readAll()+"\n");
  65. QHostInfo::lookupHost(ui->lineEdit_ip_name->text(),this, SLOT(lookedUp(QHostInfo)));
  66. }
  67. /*
  68. 工程: IP_Addr_Analysis
  69. 日期: 2021-06-01
  70. 作者: DS小龙哥
  71. 环境: win10 QT5.12.6 MinGW32
  72. 功能: 清除数据
  73. */
  74. void Widget::on_pushButton_clean_clicked()
  75. {
  76. ui->plainTextEdit_log->clear();
  77. }

3.2 widget.h


  
  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QWidget>
  4. #include <QHostInfo>
  5. #include <QScrollBar>
  6. #include <QPlainTextEdit>
  7. #include <QProcess>
  8. QT_BEGIN_NAMESPACE
  9. namespace Ui { class Widget; }
  10. QT_END_NAMESPACE
  11. class Widget : public QWidget
  12. {
  13. Q_OBJECT
  14. public:
  15. Widget(QWidget *parent = nullptr);
  16. ~Widget();
  17. private slots:
  18. void lookedUp(const QHostInfo &host);
  19. void Log_Text_Display(QString text);
  20. void on_pushButton_ip_get_clicked();
  21. void on_pushButton_clean_clicked();
  22. private:
  23. Ui::Widget *ui;
  24. };
  25. #endif // WIDGET_H

 

 

文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaolong.blog.csdn.net/article/details/117446085

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。