我在 Windows 7 中创建了一个 .BAT 文件,其中包含以下行:
PING XXX.XXX.XXX.XXX -t
Run Code Online (Sandbox Code Playgroud)
(XXX 替换实际 IP 号)。但是,当我双击这个批处理文件时,我可以看到 ping 命令在循环中重复执行。我什至试图重命名为ping.BAT,ping.CMD但结果是一样的。
我想避免通过命令提示符编写 ping 命令,这就是我创建批处理文件的原因。我不知道为什么将相同的语句放入批处理文件时会不断调用 ping 命令。
为什么ping包的数据长度是32字节而traceroute包的数据长度是64字节?有什么理由吗?或者这种差异有什么好处吗?
我需要使用ping带有普通 Linux 语法的命令的脚本,Cygwin 的默认包或 Windows ping 实用程序都不起作用。现在,我已经修补脚本以使用 Windows 版本(有一些困难;Windows 可执行文件不提供有用的返回代码,所以我必须解析输出),但我想要的是 -盒兼容性和Linux ping 的附加功能。在我进一步讨论之前,让我声明我正在以管理员模式运行 Cygwin;这不是特权问题。是版本问题。
Cygwin 的默认ping命令在安装管理器中列为“1.0-1”版本,位于“ping:测试 IP 网络连接的基本网络工具”包中。没有参数,它输出:
Usage: ping [-dfqrv] host [packetsize [count [preload]]]
Run Code Online (Sandbox Code Playgroud)
手册页描述以“DARPA Internet 是一个庞大而复杂的网络硬件聚合体”开头,这对我来说有点过时了。这是安装在/bin/ping.
Windows 的ping命令位于$SYSTEMROOT/system32/ping,并在不带参数的情况下调用时输出以下消息。
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] target_name
Run Code Online (Sandbox Code Playgroud)
这当然是一个功能更丰富的 ping(特别是,它包括超时,这对我很重要),但它不是现代 Linux 安装中可用的版本:
ping [ -LRUbdfnqrvVaAB] [ -c count] [ …Run Code Online (Sandbox Code Playgroud) 什么 IP 地址可以ping -f长时间(一整天)使用?“4.2.2.2”还是别的什么?
主要的担忧是那里的管理员可能会决定这是一些 DoS 并阻止/投诉......
也许某处有特殊的专用公共测试服务器可以发送 ICMP 回复(包括足够快),运行 TCP 和 UDP 回显服务器和其他工具?..
我的笔记本电脑上安装了 Windows,通过 IP 192.168.1.5 无线连接到路由器。我的桌面运行 Linux,连接到 IP 为 192.168.1.2 的同一路由器(有线)。当我从 Windows 到 Linux 执行 ping 操作时,我得到了响应,但在另一个方向上不起作用。可能是什么问题呢?
我注意到通过主机名 ping 比使用 IP 地址慢。例如,在 Linux 命令行中:
$ time ping google.com -c 1
PING google.com (150.101.213.160) 56(84) bytes of data.
64 bytes from 150.101.213.160: icmp_seq=1 ttl=61 time=14.4 ms
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.425/14.425/14.425/0.000 ms
real 0m5.251s
user 0m0.003s
sys 0m0.005s
$ time ping 150.101.213.160 -c 1
PING 150.101.213.160 (150.101.213.160) 56(84) bytes of data.
64 bytes from 150.101.213.160: icmp_seq=1 ttl=61 time=14.5 ms
--- 150.101.213.160 ping statistics --- …Run Code Online (Sandbox Code Playgroud) 我在 macOS 上并使用终端来 ping。我如何能够 ping 超过 56 个字节?我试图搜索,但无法找到答案。
当我对广播地址执行 ping 操作时,我得到了自环回 127.0.0.1 的回复。这种情况是正确的还是应该从最长前缀 IP 得到回复?
ping 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 40 data bytes
68 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=2 ms
68 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=1 ms
68 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=1 ms
68 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=2 ms
68 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=1 ms
--- 255.255.255.255 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 1/1/2/<1
Run Code Online (Sandbox Code Playgroud) 对于这个问题的应用中描述的项目,我需要尽可能最好的时钟精度,一种解决方案是实现计算机实时时钟的精确同步。
与 Windows 7 的“调整日期/时间”>“互联网时间”>“更改设置”>“立即更新... ”进行同步的记录精度是多少?
更具体地说,它是否补偿了时间服务器的 ping?
例子:
如果没有,是否有 Windows 软件可以通过 ping 补偿或其他类型的改进精度进行这种实时时钟同步?

到目前为止,我已经注意到,局域网中经常有一个交换机,这些交换机根据 MAC 地址路由数据包,现在如果有两个交换机连接到局域网中的一台电脑,因为我没有看到 MAC到目前为止为交换机设置的地址,PC如何知道将数据包发送到哪个交换机?
ping ×10
networking ×4
windows ×2
windows-7 ×2
batch-file ×1
broadcast ×1
cygwin ×1
ip ×1
ip-address ×1
macos ×1
ntp ×1
switch ×1
terminal.app ×1
time ×1
traceroute ×1
ubuntu ×1