首页 > 解决方案 > fsockopen 仅用于检查端口 80 和 8000(没有其他端口)

问题描述

我正在尝试使用 fsockopen 作为端口检查器来查看特定端口是否在 IP 地址上打开,但它似乎只在端口 80 和 8000 上工作。对于任何其他端口,它甚至返回端口已关闭当它打开时。我想知道我怎么可能解决这个问题?

$server_ip= $_POST['server']; 
$port = $_POST['port'];
$server_ip = gethostbyname($server_ip);
$status = array();

if (empty($_POST["server"]) || empty($_POST['port']) || !filter_var($server_ip, FILTER_VALIDATE_IP) )
{
    echo "some html code";
}

elseif (!(is_numeric($port)))
{
    echo "some other html code";
}

else
{
    if($pf = @fsockopen($_POST['server'], $port, $err, $err_string, 1)) {
        $status = true;
        fclose($pf);
    } else {
        $status = false;
    }

Output code here..
}

标签: phpportfsockopen

解决方案


推荐阅读