Bash 스크립트에서 사용하기 위해 nmblookup에서 IP 주소만 얻는 방법은 무엇입니까?

Bash 스크립트에서 사용하기 위해 nmblookup에서 IP 주소만 얻는 방법은 무엇입니까?

만약 내가한다면:

nmblookup myServerName

나는 얻다:

192.168.6.106 myservername<00>

Bash 스크립트에서 반환된 IP를 사용하고 싶기 때문에 문자열의 일부 nmblookup myServerName가 아닌 IP만 반환하는 가장 좋은 방법을 알고 싶습니다 . myservername<00>나는 보았다nmblookup 문서, 그러나 나에게 도움이 될 옵션을 찾을 수 없습니다.

답변1

myServerName이 다운된 경우 nmblookup이 실패할 수 있으므로 온전성 검사를 포함하여 보다 엄격한 검사를 추가할 수 있습니다.

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

관련 정보