Si lo hago:
nmblookup myServerName
Yo obtengo:
192.168.6.106 myservername<00>
Como quiero utilizar la IP devuelta nmblookup myServerName
en un script Bash, me gustaría saber cuál es la mejor manera de devolver solo la IP, no la myservername<00>
parte de la cadena. he miradola documentación de nmblookup, pero no encuentro una opción que me ayude.
Respuesta1
Es posible que desees agregar algunas comprobaciones más estrictas, incluida la verificación de idoneidad, ya que nmblookup podría fallar si myServerName está inactivo:
RES=$(nmblookup myServerName 2>/dev/null)
if test "$?" != "0"; then
echo "nmblookup failed"
# Do something
exit 10
fi
IP1=$(echo "$RES" | sed 's/^\([0-9]*\)\..*/\1/')
IP1=$(printf '%d' "$IP1" 2>/dev/null)
test -z "$IP1" && IP1=256
IP2=$(echo "$RES" | sed "s/^$IP1\\.\\([0-9]*\\)\\..*/\\1/")
IP2=$(printf '%d' "$IP2" 2>/dev/null)
test -z "$IP2" && IP2=256
IP3=$(echo "$RES" | sed "s/^$IP1\\.$IP2\\.\\([0-9]*\\)\\..*/\\1/")
IP3=$(printf '%d' "$IP3" 2>/dev/null)
test -z "$IP3" && IP3=256
IP4=$(echo "$RES" | sed "s/^$IP1\\.$IP2\\.$IP3\\.\\([0-9]*\\).*/\\1/")
IP4=$(printf '%d' "$IP4" 2>/dev/null)
test -z "$IP4" && IP4=256
OK=1
test $IP1 -gt 255 && OK=0
test $IP2 -gt 255 && OK=0
test $IP3 -gt 255 && OK=0
test $IP4 -gt 255 && OK=0
if test "$OK" != "1"; then
echo "nmblookup talking garbage"
# Do something
exit 11
fi