【问题标题】:PHP - get server to ping a visitors IP and return the ping in msPHP - 让服务器 ping 访问者 IP 并在 ms 中返回 ping
【发布时间】:2011-09-26 13:31:15
【问题描述】:

我想按照标题所述做。 ping 用户 IP 并以 ms 为单位返回结果,例如:

Ping IP 返回 400 毫秒。

我不知道该怎么做,但我希望它会相对简单。我可以访问 exec() 函数和与之类似的函数,因为我将在虚拟专用服务器上运行此脚本。

提前致谢。

【问题讨论】:

    标签: php ip ping


    【解决方案1】:

    试试这个

    <?php
    
    $out = array();
    exec('ping -c 4 '.$_SERVER['REMOTE_ADDR'], $out);
    print_r($out);
    
    ?>
    

    【讨论】:

    • 加载似乎需要很长时间。
    • 虽然我已经将它包装在一个函数调用中,但这似乎可行。如果用户通过代理浏览,您可能会得到错误的地址,但如果需要,这是一个相当简单的添加 - 我关注 YAGNI。
    • @h_12 - 如果您希望它是异步的,以免阻塞页面加载,那么我建议在页面加载后调用 Ajax 脚本;否则,您总是有可能会变慢。
    • 是的,它看起来应该可以工作,但目前页面不想加载,因为我认为服务器太忙于 ping IP 并获取输出 - 有什么方法可以加快速度这个过程还是让它只给出一个响应而不是几个?
    • @h_12,请参阅我的第二条评论。您也可以将 -c 4 更改为 -c 1,但这会不太准确。
    【解决方案2】:

    试试这个:

    <?php
    
    $ip     = $_SERVER['SERVER_ADDR'];  // Get the IP address of the visitor
    $result = system('ping -n 1 '.$ip, $retval); // the result contains the last line of the ping command.
    
    if ($retval==0) echo "OK";
    if ($retval==1) echo "NOT OK";
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 1970-01-01
      • 2011-06-26
      • 2010-11-17
      • 2020-08-02
      • 2011-02-26
      • 2014-01-30
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多