I followed the example from my MacBookPro (Big Sur 11.7.09) using terminal. It would not allow me to spec an interval under 0.1.
$ ping -c 4 -i 0.1 218.101.61.162
PING 218.101.61.162 (218.101.61.162): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
64 bytes from 218.101.61.162: icmp_seq=0 ttl=54 time=212.910 ms
64 bytes from 218.101.61.162: icmp_seq=1 ttl=54 time=201.219 ms
64 bytes from 218.101.61.162: icmp_seq=2 ttl=54 time=204.627 ms
64 bytes from 218.101.61.162: icmp_seq=3 ttl=54 time=203.737 ms
--- 218.101.61.162 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 201.219/205.623/212.910/4.389 ms
$ ping -c 4 -i 0.09 218.101.61.162
ping: -i interval too short: Operation not permitted
t's a limitation imposed by the ping programme itself, it'll refuse to use very short intervals if you're not root. This is documented in the man page. Or, use the source, Luke:
case 'i': /* wait between sending packets */
t = strtod(optarg, &ep) * 1000.0;
if (*ep || ep == optarg || t > (double)INT_MAX)
errx(EX_USAGE, "invalid timing interval: `%s'",
optarg);
options |= F_INTERVAL;
interval = (int)t;
if (uid && interval < 100) {
errno = EPERM;
err(EX_NOPERM, "-i interval too short");
}
break;
And if you keep looking, Apple's version of ping keeps track of the number of sent and received probes, but does not keep track of the largest difference between the sequence nubmer of sent and received probes, so it will not print the same "pipe" value as the iputils version of ping (ie. the version you typically get in Linux).
I believe you need escalated privileges (I don’t know which capability, specifically) for intervals under a certain point. The author was running as root.
--- 218.101.61.162 ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 201.219/205.623/212.910/4.389 ms $ ping -c 4 -i 0.09 218.101.61.162 ping: -i interval too short: Operation not permitted