centos 7 linux脚本只获取IP的三种方法

您所在的位置:网站首页 linux打印设备ip地址命令 centos 7 linux脚本只获取IP的三种方法

centos 7 linux脚本只获取IP的三种方法

2023-07-21 12:59| 来源: 网络整理| 查看: 265

在编写脚本的时候,我们会经常需要获取本机IP地址。今天,我就将自己常用的三种方法分享给大家,希望能对大家有些帮助。

环境:linux centos 7系统

[root@slave1 ~]# lsb_release -a LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description:    CentOS Linux release 7.6.1810 (Core) Release:        7.6.1810 Codename:       Core [root@slave1 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@slave1 ~]# rpm -q centos-release centos-release-7-6.1810.2.el7.centos.x86_64

方法一:利用ifconfig命令获取

这个方法可能是最容易想到,也是大家最常用的方法。完整命令如下:

ifconfig -a|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'|grep -v "127.0.0"|awk '{print $2}'

或者

ifconfig eth0|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'|grep -v "127.0.0"|awk '{print $2}'

结果如下:

下面我就分步给大家讲解一下。

“ifconfig -a ” 命令:可以用来查看所有网口配置,包含了网口的IP地址。

“ifconfig eth0 ” 命令:可以用来查看eth0网口配置,只有本地网口的IP地址。

grep 命令可以用于从文件或标准输入中查找指定的字符串。

“-o”参数表示“仅显示匹配的内容”。“-e”参数表示“支持正则表达式查找” 。“-v”参数表示取反,查找不包含后面指定字串的行。

正则表达式“[0-9]\{1,3\}”,其中“[0-9]”表示匹配“0-9”中的任意一个数字,“{1,3}”表示“前面的匹配数字的个数是1个至3个之间”。

awk命令,因功能强大又被称为一门编辑语言。这里只是用了它一个最基本的功能,将第2字段的值取出。

方法二:hostname -i

命令:hostname -i

命令简单,但它的缺点在man帮助文档中被明文指出:它仅能在主机名能被解释时方便正常工作。

 如果主机名未被解释,则显示如下:

方法三:hostname -I (脚本推荐使用)

命令:hostname -I

与方法二一样命令简单,能够显示所有配置网口的ip地址。同时它不存在方法二的缺点,即便当前主机名不能被解释时,也能正常工作。在脚本中获取IP推荐使用该方法。

如果只想获取本机eth0地址可以:

hostname -I| grep -o -e '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}' |head -n 1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3