网站地图    收藏   

主页 > 后端 > php资料库 >

利用php写的端口扫描函数 代码_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 运用php中的socket函数,可以简单的写出一个端口扫描工具,性能不怎么好,不过玩玩儿,够了。 运用fsockopen函数,探测过程中,可能会出现警告信息,加上@就可以了,该函数成功返回句...

运用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来调整运行的时间,否则,以网页方式会因为超过请求的限定时间而终止程序。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论