【问题标题】:How do I use PHP and curl to ping the same way as windows ping如何使用 PHP 和 curl 以与 windows ping 相同的方式 ping
【发布时间】:2015-03-02 23:28:07
【问题描述】:

当我使用windows命令'ping'时,我可以只ping IP地址并得到结果;即使只有 IP 地址 xxx.xxx.xxx。无需端口即可工作。我正在 ping 一个只有 HTTPS 和非标准端口的 IP,但 'ping 仍然有效。

在尝试了几个版本的 GET_HEADERS 和 fsockopen 之后,我仍然无法从 PHP ping 中获得成功的返回。

我需要的是能够在不知道端口或 HTTP 协议的情况下 ping 一个 IP 地址并确定服务器是否已启动。

任何建议将不胜感激。

谢谢

【问题讨论】:

  • 您是否有权访问 exec?
  • Ping 与 HTTP 甚至 TCP 无关。它是特殊协议 (ICMP) 的一部分。 socket_create() 有一些信息可以做到这一点(在 cmets 中甚至还有一些示例 ping() 代码)。
  • 成功的“ping”并不能真正告诉您服务器是否“启动”。取决于你的定义。如果您想检查 abc.com 是否可供我浏览,ping 不是一个好的选择
  • 我打算使用 'ping' 函数来确定 IP 地址是否存在,如果存在,我可以使用 curl 函数来确定服务器上的服务类型。

标签: php networking curl


【解决方案1】:

我相信要使用 fsockopen 和 curl,您需要知道端口。尝试使用类似这样的 exec 命令。

<?php
$ping = exec("ping www.stackoverflow.com");

if ($ping == 0){
   echo "Reached server";
}
else
{
  echo "Failed to reach";
}
?>

php.net/exec 了解更多关于 exec 的信息

【讨论】:

  • 感谢您的提示。它工作得很好。您对性能与 multi_curl 有什么想法吗?
猜你喜欢
  • 2016-07-25
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
相关资源
最近更新 更多