2015-03-02 67 views
-1

当我使用windows命令'ping'时,我只能ping通IP地址并获得结果;即使只有IP地址xxx.xxx.xxx。这个工作不需要任何端口。我正在ping一个只有HTTPS和非标准端口的IP,但ping仍然有效。如何使用PHP和curl以与ping相同的方式ping ping ping

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

我需要的是能够ping不知道端口或HTTP协议的IP地址,并确定服务器是否启动。

任何建议,将不胜感激。

感谢

+0

你有机会给exec? – Ronnie 2015-03-02 23:43:00

+1

Ping与HTTP甚至TCP无关。它是特殊协议(ICMP)的一部分。 ['socket_create()'](http://php.net/manual/en/function.socket-create.php)有一些信息可以做到这一点(甚至在注释中还有一些'ping()'代码)。 – Carpetsmoker 2015-03-03 00:07:56

+0

成功的“ping”并不能真正告诉你服务器是否“启动”。以及取决于你的定义。如果你想检查是否有abc.com可供我浏览,ping不是一个好选择 – 2015-03-03 00:14:26

回答

0

我相信,为了使用的fsockopen和卷曲,则需要使用exec命令,像这样知道的端口。尝试。

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

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

php.net/exec更多关于高管

+0

感谢您的提示。它效果很好。你对性能和multi_curl有什么想法吗? – Chris 2015-03-03 00:04:18