PHP远程扫描端口源码

有些时候我们通过路由器做了端口映射,想测试一下从外网通过自己的公网IP能不能连进来,一般我们都是找在外网的朋友帮ping一下,如果朋友都不在线自己又急着测试怎么办呢?

其实使用PHP的fsockopen函数可以实现连接端口来进行测试:

$fp = @fsockopen($yourip, $port, &$errno, &$errstr, 1); // 这里加@可以略过Warning的提示
if ($fp) {
	echo $port . ',';
	fclose($fp);
}

另外php的参考文档里说IP前缀加上"udp://"就可以测试UDP,可我实际测试时发现都能连接成功,因此此功能暂可忽略。原因参见http://php.net/manual/en/function.fsockopen.phpNotes部分,里面有一段Warning

源码下载:scanPorts.php.txt

本地测试:scanPorts.php (考虑到这不是并发扫描,建议每次扫描在100个端口范围内,但可以同时打开多个页面分别扫描)

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。