错误代码:
import "os/exec"
func main(){
cmd := exec.Command("ping", "192.168.1.5", "-W", "5", "-n", "3")
err := cmd.Run()
if err != nil{
fmt.Println("command run fail..", err)
return
}
return
}
以上代码执行的时候会报 exit status 1 的错误,错误原因是 参数 "-W" 应该是小写。
正确代码:
import "os/exec"
func main(){
cmd := exec.Command("ping", "192.168.1.5", "-w", "5", "-n", "3")
err := cmd.Run()
if err != nil{
fmt.Println("command run fail..", err)
return
}
return
}
Command参数解释:
"ping":需要在命令行执行的命令
"192.168.1.5": 需要ping的地址
"-w": 等待每次回复的超时时间(毫秒)
"-n": 要发送的回显请求数
这个命令的实际效果如下:
ping 命令的其他参数可以用 ping -help 来查看
ping -help
用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p] [-4] [-6] target_name
选项: -t Ping 指定的主机,直到停止。 若要查看统计信息并继续操作,请键入 Ctrl+Break; 若要停止,请键入 Ctrl+C。 -a 将地址解析为主机名。 -n count 要发送的回显请求数。 -l size 发送缓冲区大小。 -f 在数据包中设置“不分段”标记(仅适用于 IPv4)。 -i TTL 生存时间。 -v TOS 服务类型(仅适用于 IPv4。该设置已被弃用, 对 IP 标头中的服务类型字段没有任何 影响)。 -r count 记录计数跃点的路由(仅适用于 IPv4)。 -s count 计数跃点的时间戳(仅适用于 IPv4)。 -j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。 -k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。 -w timeout 等待每次回复的超时时间(毫秒)。 -R 同样使用路由标头测试反向路由(仅适用于 IPv6)。 根据 RFC 5095,已弃用此路由标头。 如果使用此标头,某些系统可能丢弃 回显请求。 -S srcaddr 要使用的源地址。 -c compartment 路由隔离舱标识符。 -p Ping Hyper-V 网络虚拟化提供程序地址。 -4 强制使用 IPv4。 -6 强制使用 IPv6。