端口扫描软件一般是发送一个连接请求到目标主机和端口,检测返回的连接状态从而判断目标主机端口是否打开
以下是perl的一个例子
use IO::Socket::INET; my $host= '127.0.0.1'; my $port= '8080'; my $proto='tcp'; $socket = new IO::Socket::INET( PeerHost =>$host, PeerPort =>$port, Proto =>$proto );# or die "ERROR in Socket Creation : $!\n"; if($socket){ print "found port "; } else{ print "not found port"; } $socket->close();
以上例子只是扫描tcp端口,可以换成其他协议的,另外其他语言的扫描方法基本也是这个原理。