Bash脚本获取所有IP地址

贾斯汀:

我正在尝试编写bash脚本来获取服务器上的所有IP地址。该脚本应可在所有主要发行版上使用。这是我所拥有的:

ifconfig | grep 'inet addr:' | awk {'print $2'}

导致:

addr:10.1.2.3
addr:50.1.2.3
addr:127.0.0.1

我如何首先删除addr:前缀?第二,如何排除127.0.0.1

史蒂夫:

不需要grep这是一种使用方法awk

仅列出地址:

ifconfig | awk -F "[: ]+" '/inet addr:/ { if ($4 != "127.0.0.1") print $4 }'

列出设备和地址:

ifconfig | awk -v RS="\n\n" '{ for (i=1; i<=NF; i++) if ($i == "inet" && $(i+1) ~ /^addr:/) address = substr($(i+1), 6); if (address != "127.0.0.1") printf "%s\t%s\n", $1, address }'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章