admin管理员组文章数量:1613758
ping
命令是在win和linux中常用的命令。
可是使用ping命令实现对ip连通性的测试。例如:
- _
import subprocess as sp def check_connection(ip): cmd = f'ping -c 1 {ip}' output = sp.getoutput(cmd) return False if '100% packet loss' in output else True
这个函数中,对IP进行了一次PING测试,如果ping通,返回True
,否则返回False
。
在实际的使用中发现,如果IPping不通时,直到ping命令的超时,才有结果返回。在某些响应中,ping命令的超时,会成为影响程序效率的关键。
通过查询帮助文档,在linux中和win中ping命令参数是有差异的,如下所示:
-
linux
>>ping -h 选项 -h 不正确。 用法: 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。
-
win
(venv3) [root@localhost operational_system_api]# ping -h Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface] [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline] [-W timeout] [hop1 ...] destination Usage: ping -6 [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface] [-l preload] [-m mark] [-M pmtudisc_option] [-N nodeinfo_option] [-p pattern] [-Q tclass] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline] [-W timeout] destination
修改后代码:
- _
import subprocess as sp def check_connection(ip): if sys.platform == 'linux': cmd = f'ping -W 3 -c 1 {ip}' else: cmd = f'ping -w 3000 -n 1 {ip}' output = sp.getoutput(cmd) return False if '100% packet loss' in output or '100% 丢失' in output else True
注:
win中的延迟参数为-w
,单位为毫秒;发送的回显请求数参数为-n
。
linux中的延迟参数为-W
,单位为秒;发送的回显请求数参数为-c
。
版权声明:本文标题:ping在linux和win中的区别 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728655881a1168164.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论