欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

端口扫描器

程序员文章站 2022-05-15 22:10:04
...

端口扫描器

最近在学习网络编程,我就用Qt做了一个端口扫描小程序。


先附图,再讲原理和编程方法。

开始扫描前:
端口扫描器
扫描后的结果:
端口扫描器

原理:
主要是用IP地址和端口号(也就是套接字)和主机连接,如果主机应答则表示该端口在工作,反之则没有。
编程方法
Qt中用到的函数:

(1)void QAbstractSocket::connectToHost(const QString &hostName, quint16 port, OpenMode openMode = ReadWrite, NetworkLayerProtocol protocol =
AnyIPProtocol)
(2)bool QAbstractSocket::waitForConnected(int msecs = 30000)

看到这两个函数,一般人头都大了,但是不用着急,听我道来。
第一个函数是用来建立连接,第一个参数是IP地址,也就是主机名,第二个参数是端口号,后面参数忽略,啦啦啦~~~
第二个函数是用来确定是否主机响应,如果响应,则返回真,后面参数单位为ms。
核心代码为:

       QTcpSocket socke;//创建一个套接字
       socket.abort();//断开连接
       socket.connectToHost(Ip,port);//连接主机
       if(socket.waitForConnected(1000))//如果主机响应,进行处理..
        {
                 //内部处理函数,我这里是简单输出到文本浏览器中
                QString msg = QString::number(i) +"connected";
                ui->portResultTextBrowser->append(msg);
         }

其他代码就是一些界面处理什么的,这里就不讲了。

附上代码:

代码链接

相关标签: qt