查看服务器是否正在侦听PHP中的端口?

时间:2014-04-25 18:17:44

标签: php apache port

在回答之前,请注意我是PHP的新手。我听说它很强大。

我想要做的是在我的(Apache 2)Web服务器上有一个页面,当用户点击页面上的按钮时,服务器将检查端口是否在其上运行。拥有每个按钮的预设端口的IP,我想要多个具有相同IP但不同端口的按钮被ping。

示例:

  • 单击按钮1(Terraria Server),服务器ping 127.0.0.1:7777并告诉用户是否收到响应。

  • 单击按钮2(Minecraft服务器),服务器ping 127.0.0.1:25565并告诉用户等等。

我已经安装并运行了PHP,我只需要一些代码:)

1 个答案:

答案 0 :(得分:2)

尝试端口上的连接并返回结果:

 <?php
     function Connect($port) {
        $serverConn = @stream_socket_client("tcp://127.0.0.1:{$port}", $errno, $errstr);
        if ($errstr != '') {
            return false;
        }
       fclose($serverConn);
       return true;
      } 


    if(isset($_POST['portTest'])){
       switch ($_POST['portTest']){
           case 'minecraft': $port= '25565';
        break;
           case 'Terraria': $port= '7777';
        break;  
           default: exit;
       }
     if (Connect($port)){
         echo "Server is running!";
       }else{
         echo "Server is down";
       }
    }
    ?> 

    <form method="POST">
    <input type="submit" name="portTest" value="minecraft">
    <input type="submit" name="portTest" value="Terraria">
    </form>