如果我做:
nmblookup myServerName
我得到:
192.168.6.106 myservername<00>
由于我想使用nmblookup myServerName
Bash脚本中返回的IP ,因此我想知道仅返回IP而不返回myservername<00>
字符串部分的最佳方法。我看过nmblookup文档,但是找不到可以帮助我的选项。
您可能要添加一些更严格的检查,包括完整性检查,因为如果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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句