php
  • ping
  • 2013-03-05 50 views 1 likes 
    1

    我一直有问题,我一直在篡改脚本。在没有端口的php中ping服务器?

    我想为我的游戏服务器做一个在线检查器,所以我可以指出我的服务器是在线还是从我的网站下来。这是我的代码:

    <?php 
    if (!$socket = @fsockopen(IP, Port, $errno, $errstr, 2)) 
    { 
        echo "<center><img style='float:left;' src='images/offline_icon.png'><font style='float:left;' size='5' color='red'><strong>Offline!</strong></font></center>"; 
    } 
    else 
    { 
        echo "<center><img style='float:left;' src='images/online_icon.png'><font style='float:left;' size='5' color='green'><strong>Online!</strong></font></center>"; 
        fclose($socket); 
    } 
    ?> 
    

    我的问题是,它失败。如果我将超时设置为30,则会等待30秒,然后将其标记为脱机并继续。

    如果我在终端上ping IP,它工作得很好。

    在搜索关于ping和端口后,它似乎可能是问题。

    有没有办法在没有端口的IP上执行普通ping?像linux命令行一样?

    +0

    游戏服务器是否也运行网络服务器?如果是这样,你可以使用一个小的HTML文件来确定它是否存在吗? 'file_get_contents('http://www.example.com/alive.html');'它在失败时返回false。 – mkaatman 2013-03-05 19:19:13

    +0

    游戏服务器远程托管。我已经知道这是可能的: – 2013-03-05 19:19:48

    +0

    尝试使用端口80,这是'http://使用的端口 – 2013-03-05 19:20:28

    回答

    3

    ICMP不使用端口。

    您可能想用exec()来ping服务器。退房:Pinging an IP address using PHP and echoing the result

    +0

    谢谢,这工作:) – 2013-03-05 19:26:36

    相关问题