标签归档:端口扫描

php写的端口扫描函数

运用php中的socket函数,可以简单的写出一个端口扫描工具,性能不怎么好,不过玩玩儿,够了。

运用fsockopen函数,探测过程中,可能会出现警告信息,加上@就可以了,该函数成功返回句柄,失败返回false。

函数原型如下:

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get(“default_socket_timeout”) ]]]] )
参数分别为,主机名,端口号,错误号,错误信息,检测的超时时间。

扫描函数如下:


function scan($ip){
	$error_no = $error_str = "";
	for ($p = 0; $p < 65535; $p++) {
		if(@fsockopen($ip,$p,&$error_no,&$error_str,1)){
			echo "$p opened! <p>";
		}
	}

}

可以检测一下本机的端口,如果是lamp结构的话,那么80端口应该是打开的,标准的web服务端口。3306应该也是打开的,是mysql的端口。

检测本地主机,速度还是可以的,不过加上远程主机就有点儿麻烦了,超时时间1秒钟,运行完整个程序估计要几个小时吧!建议用cli方式运行,或者用ini_set来调整运行的时间,否则,以网页方式会因为超过请求的限定时间而终止程序。