shell获得主机IP

ifconfig eth0|grep 'inet add'|awk -F "[: ]" '{print $3}'
这个有什么问题,为什么无输出???
QQ截图20121021102051.png

阅读 8.6k
5 个回答

总觉得这个办法要数空格比较郁闷啊 太多了。大家可以集思广益。提供下比较好的获取ip的方式,我这提供两个,是以前都用过的。最后觉得用一个awk实现会比较的cool.

/sbin/ifconfig eth0 |awk -F\: '/inet / {print $2}'|awk '{print $1}'

详细查看:http://www.ohlinux.com/archives/331/

用一个awk搞定

/sbin/ifconfig eth0 |awk -F\: '/inet addr:/ {split($2,ip," ");print ip[1]}'

详细查看(实现的要求复杂点):http://www.ohlinux.com/archives/824/

iproute2里的ip命令更好

/sbin/ip -oneline addr show dev eth0

但是正常情况下是不需要知道设备上有哪个IP的,只需要知道别人看见的你的IP是啥。即使某个网络设备上有多个IP,实际也只看路由表里默认用哪个IP走

/sbin/ip -oneline route get 192.168.1.1

应该是ifconfig eth0|grep 'inet add'|awk -F "[: ]" '{print $13}'哈哈

新手上路,请多包涵

hostname -i

反正就是配合awk咯,具体命令各人可能有出入

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
101 新手上路
子站问答
访问
宣传栏