Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar Shell para hacer ping por lotes a nombres de dominio y generar un archivo de resultados?

¿Cómo utilizar Shell para hacer ping por lotes a nombres de dominio y generar un archivo de resultados?

Script: #!/bin/sh

nombre de archivo=dominios.txt

ping_count=3

mientras?leer?dominio; ?do

x=$(ping?-W?1?-c?$ping_count?$dominio?2gt;/dev/null?|?grep?-E?"(PING)|(pérdida )")

loss=$(echo?"$x"?|?grep?"loss"?|?awk?'{printf?"s",?substr($6,?1,? length($6)-1)}')

si?[?$loss?-eq?100?];?entonces

echo?"$x"?|?grep ?"PING"?|?awk?'{printf?"s?no?ping\n",?$2}'

else

echo?"$x"?| ?grep?"PING"?|?awk?'{printf?"s?s\n",?$2,?substr($3,?2,?length($3)-2)}'

fi

done?lt;$filename

El número de pings (ping_count) para cada nombre de dominio se puede ajustar adecuadamente para garantizar la precisión y el rendimiento.

Archivo de datos:

cat domains.txt

www.baidu.com

www.taobao.com

www.qq.com

www.baidud.com

Resultado:

www.baidu.com 14.215.177.38

www.taobao.com 183.61.241.252

www.qq.com 59.37.96.63

www.baidud.com sin ping

Otro: entiendo que " "Nombre de lugar" debe confundirse con "nombre de dominio". Si realmente necesita un nombre de lugar, puede usar el comando whois o incluso la base de datos de IP (como la base de datos de Innocence).