本文利用 fsockopen() 函数,编写一个功能简单的端口扫描器。本实例的端口号是固定的,通过对数组的遍历,利用 fsockopen() 函数连接,如果连接成功,则该端口处于开放状态,否则该端口处于关闭状态。
核心代码如下:
foreach ($port as $key => $value) {
echo '';
echo '' . $key . ' ';
echo '' . $value . ' ';
echo '' . $msg[$key] . ' ';
//$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时
$fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主机(hostname)不可访问,将会抛出一个警告级别(E_WARNING)的错误提示。所有需要加@
$result = $fp ? '开启' : '关闭';
echo '' . $result . ' ';
echo ' ';
}端口扫描
| id | 端口号 | 服务 | 开启状态 |
| ' . $key . ' | '; echo '' . $value . ' | '; echo '' . $msg[$key] . ' | '; //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主机(hostname)不可访问,将会抛出一个警告级别(E_WARNING)的错误提示。所有需要加@ $result = $fp ? '开启' : '关闭'; echo '' . $result . ' | '; echo '