相信很多人已经使用Linux命令很长时间了,也习惯了命令行模式,现在通过这样一个游戏对各位进行一下思维发散大挑战,说到Linux的IP地址其实大家都知道一个命令——ifconfig ,可以查看到Linux的IP,我想说的是,我只要Linux的IP地址。
本文想要的结果:
10.10.9.201
通常大家想到的:
第一种方法:
[root@xiaoyu ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:50:56:94:54:E2
inet addr:10.10.9.201 Bcast:10.10.9.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe94:54e2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1559452 errors:0 dropped:0 overruns:0 frame:0
TX packets:566892 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:726285330 (692.6 MiB) TX bytes:65904357 (62.8 MiB)
第二种方法:
[root@c ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:50:56:94:54:E2
IPADDR=10.10.9.201
GATEWAY=10.10.9.1
DNS1=10.10.8.31
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
NETMASK=255.255.255.0
USERCTL=no
PEERDNS=yes
现总结了一下七种方法,供各位参考:
第一种方法:
[root@xiaoyu ~]# ifconfig | grep "Bcast" | cut -d ":" -f2 | cut -d " " -f1
10.10.9.201
第二种方法:
[root@xiaoyu ~]# ifconfig | grep "Bcast" | awk -F ":" '{print $2}' | awk -F " " '{print $1}'
10.10.9.201
第三种方法:
[root@xiaoyu ~]# ifconfig | grep "Bcast" | awk -F "[: ]+" '{print $4}'
10.10.9.201
第四种方法:
[root@xiaoyu ~]# ifconfig eth0 | sed -n '2p' | awk -F "[: ]+" '{print $4}'
10.10.9.201
第五种方法:
[root@xiaoyu ~]# ifconfig eth0 | awk -F "[: ]+" 'NR==2 {print $4}'
10.10.9.201
第六种方法:
[root@c ~]# grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d "=" -f2
第七种方法:
[root@c ~]# ifconfig eth0 | sed -n '/inet add/p' | sed 's#^.*add##g' | sed 's# Bc.*$##g'
第八种方法:
[root@xiaoyu ~]# ifconfig eth0 | sed -n 's#^.*addr:\(.*\) Bcas.*$#\1#gp'
10.10.9.201
我最喜欢最后一种,您呢,还有没有更好的方法呢?
高人补充:(查看机器的公网地址)
curl ifconfig.me