请问如何得到本机ip地址?

请问如何得到本机ip地址?

我想得到本机IP地址作为参数,用ifconfig命令显示的东西太多了,不适用,请问打下用什么命令??      
自己过滤一下呗       
my_ip="$(ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}')"

my_ip=`ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}'`

my_ip="$(ifconfig | awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | awk -F: '{print $2}')"      
looks good
复制内容到剪贴板
代码:
[dearvoid@LinuxEden:Forum ~/tmp] # ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0F:1F:5F:85:F4
          inet addr:192.168.3.38  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::20f:1fff:fe5f:85f4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:212309057 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14458424 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3564460945 (3.3 GiB)  TX bytes:2987854844 (2.7 GiB)
          Interrupt:201

[dearvoid@LinuxEden:Forum ~/tmp] # ifconfig eth0 | sed -n '/inet addr:/ { s/.*inet addr:\([0-9.]*\).*/\1/; p; q; }'
192.168.3.38
[dearvoid@LinuxEden:Forum ~/tmp] # bye
      
复制内容到剪贴板
代码:
[root@andLinux ~]# LANG=C ifconfig eth1 | awk '/inet addr:/ { print substr( $2, 6 ) }'
192.168.11.150
不得不再强调
不要再使用 grep xxx xxx | awk  xxx 这种用法了
awk的模式匹配还是很好用的      
引用:
原帖由 li-jiahuan 于 2008-3-27 09:13 发表

[root@andLinux ~]# LANG=C ifconfig eth1 | awk '/inet addr:/ { print substr( $2, 6 ) }'
192.168.11.150


不得不再强调
不要再使用 grep xxx xxx | awk  xxx 这种用法了
awk的模式匹配还是很好用的
估计这是因为大部分人跟俺一样对 awk 并不是很熟练的缘故吧       
已經給出了用 sed , awk 方案,只好用 grep , cut, tail  來做
ip=$(ifconfig eth0 | grep -A1 eth0 | cut -d: -f2 | grep -E '[0-9]+\..*' | cut -d" " -f1)
或是
ip=$(ifconfig eth0 | grep -A1 eth0 | cut -d: -f2 | tail -n1)
ip=${ip//[!0-9.]/}      
journalist
引用:
原帖由 twf_cc 于 2008-3-27 11:01 发表
已經給出了用 sed , awk 方案,只好用 grep , cut, tail  來做
ip=$(ifconfig eth0 | grep -A1 eth0 | cut -d: -f2 | grep -E '[0-9]+\..*' | cut -d" " -f1)
或是
ip=$(ifconfig eth0 | grep -A1 eth ...
感觉这位仁兄也有很深的 shell scripting 情结       
是的,我雖會一點點 Perl 和 ruby , 但多數時間還是用 shell   
給出不用 sed , awk 的方案,LZ 可以用其他方法去作思路 ,
'There is more than one way to do it' Larry Wall 的 Perl
格言,用在shell上也可以呀    
linux/Unix 的小工具合作起來不錯用的        
journalist
欢迎twf_cc加入shell 俱乐部