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