fsockopen работает только для проверки портов 80 и 8000 (без других портов) - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь использовать 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..
}
...