生产中常用的获取IP地址方法的总结

从ifconfig命令的结果中筛选出除了lo网卡之外的所有IPv4地址

centos7

(1)ifconfig | awk '/inet / && !($2 ~ /^127/){print $2}'
 # awk默认按行读取,加上输入记录分隔符BEGIN{RS=""}就会按段落读取
 # RS:Record separator,输入的记录分隔符,默认为换行符
 
(2)ifconfig | awk 'BEGIN{RS=""}!/^lo:/{print $6}'

(3)ifconfig | awk 'BEGIN{RS="";FS="\n"}!/lo/{$0=$2;FS=" ";$0=$0;print $2}'

centos6

(1)/sbin/ifconfig | awk -F'[ :]+' 'NR==2{print $4}'    # [ :]+ 以空格或冒号分割,并重复多次

(2)/sbin/ifconfig | grep "inet addr"|awk -F'[ :]+' '{print $4}'

(3)/sbin/ifconfig | sed -rn 's/.*inet addr:(.*) Bcast:.*$/\1/p'

(4)/sbin/ifconfig | grep "inet addr"|grep -oP '(\d+\.){3}(\d)'

(5)/sbin/ifconfig | grep "inet addr"|awk '{split($2,array,":");print array[2];exit}'

不受系统影响

# 方法1
/sbin/ifconfig|grep -oP '\b10.(\d+\.){2}(([0-9]{1,2})|1([0-9]){2}|2([0-5][0-4]))\b'|head -n1

# 方法2
$ hostname -I
posted @ 2021-03-24 19:10  临江仙我亦是行人  阅读(112)  评论(0编辑  收藏  举报