--- /dev/null
+#!/bin/sh
+
+fpo="/tmp/fping_${$}.out"
+POTENTIAL_PING_PEERS='1.1.1.1 8.8.8.8 9.9.9.9 a.root-servers.net b.root-servers.net c.root-servers.net d.root-servers.net e.root-servers.net f.root-servers.net g.root-servers.net h.root-servers.net i.root-servers.net j.root-servers.net k.root-servers.net l.root-servers.net m.root-servers.net'
+
+set -u
+
+echo "Pinging potential peers... please stand by and keep your Internet-directed traffic at a minimum."
+
+fping --addr --count=48 --period=250 --retry=0 --size=1280 ${POTENTIAL_PING_PEERS} >"${fpo}" 2>&1
+
+awk -v "outfile=${fpo}" '
+/^[^ ].* 0% loss/ {
+ peers_records[$1]++
+ peers_totalms[$1] += $6
+ peers_squarems[$1] += ($6 ^ 2)
+ peers_pinglist[$1]=peers_pinglist[$1] " " $6
+ if($6 > peers_max[$1]) { peers_max[$1]=$6 }
+ if($6 < peers_min[$1] || peers_min[$1] == 0) { peers_min[$1]=$6 }
+}
+/^[^ ].*100% loss/ {
+ peers_loss[$1]++
+}
+
+END {
+ cmd_stats = "sort -nr > " outfile ".stats"
+ for (p in peers_loss)
+ {
+ print "TIMEOUT " p " miss=" peers_loss[p]
+ }
+ for (p in peers_totalms)
+ {
+ alat = peers_totalms[p] / peers_records[p]
+ stdev = sqrt((peers_squarems[p] - peers_totalms[p] ^ 2 / peers_records[p])/peers_records[p])
+ if (peers_loss[$1] < 2) {
+ printf("%5.2f stdev avg %-5.1f min %-5.1f max %-5.1f %s\n", stdev, alat, peers_min[p], peers_max[p], p) | cmd_stats
+ }
+ }
+ for (p in peers_pinglist)
+ {
+ #print p " " peers_pinglist[p]
+ }
+}' "${fpo}"
+
+cat "${fpo}".stats