php - PHP Ping 无反应
问题描述
我正在我的 Mac 上使用 larval valet 运行本地开发环境。而且我正在尝试 ping 主机,但是我从未得到响应。
运行像“ls”这样的简单 shell 命令可以工作并给出预期的输出。
代码
function getStatus($name) {
$ip = "1.1.1.1";
exec("ping -n 3 $ip", $output, $status);
print_r($output);
print_r($status);
}
输出:
Array ( ) 127
解决方案
由于 ping 在 *NIX 系统上无限循环运行,因此您必须限制它执行的 ping 次数。我怀疑您尝试使用-n
参数来执行此操作,但是,正确的参数是-c
代表“计数”。
因此,您应该像这样执行 ping:
exec("ping -n 3 $ip", $output, $status);
它工作正常:
Array
(
[0] => PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
[1] => 64 bytes from 1.1.1.1: icmp_seq=1 ttl=58 time=8.71 ms
[2] => 64 bytes from 1.1.1.1: icmp_seq=2 ttl=58 time=8.71 ms
[3] => 64 bytes from 1.1.1.1: icmp_seq=3 ttl=58 time=8.82 ms
[4] =>
[5] => --- 1.1.1.1 ping statistics ---
[6] => 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
[7] => rtt min/avg/max/mdev = 8.713/8.751/8.824/0.119 ms
)
旁注:该-n
参数也存在,但只是指示 ping 只接受数字输入 - IP 地址而不是主机名。
从手册页:https ://ss64.com/osx/ping.html
-n Numeric output only. No attempt will be made to lookup symbolic
names for host addresses.
推荐阅读
- django - 阅读 Django 上的选择选项
- python-sphinx - 构建错误“必须只有一个参数:DEST_DIR”
- java - 使用注解配置引用多个 bean
- laravel - 两个表中的一个数据
- reactjs - 如何在反应5秒后自动关闭甜蜜警报
- c# - 带有 c# 和 f# 项目的根文件夹中的 Directory.Build.props 会导致问题
- swift - 如何检测 UICollectionViewCell 是否在特定位置?里面的GIF
- ios - 如何在 Alamofire 中使用 UITextField?
- spring-boot - Spring Cloud Config:调用执行器/刷新端点时,密码未在 Spring Cloud 配置客户端中使用 jasypt 解密
- angular - Angular 表单无法提交