端口扫描器
程序员文章站
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);
}
其他代码就是一些界面处理什么的,这里就不讲了。
附上代码:
上一篇: metasploit中端口扫描器
下一篇: Nmap端口扫描