Se você deseja executar a descoberta de host, não use pings de transmissão, basta executar ping em cada permutação possível para uma determinada sub-rede. Parece pesado, mas na verdade leva alguns segundos (os colchetes são importantes):
$ time ( s=192.168.0 ; for i in $(seq 1 254) ; do ( ping -n -c 1 -w 1 $s.$i 1>/dev/null 2>&1 && printf "%-16s %s\n" $s.$i responded ) & done ; wait ; echo )
192.168.0.5 responded
192.168.0.11 responded
192.168.0.2 responded
192.168.0.254 responded
192.168.0.4 responded
real 0m1.317s
user 0m0.004s
sys 0m0.084s