获取系统的IP地址
获取linux主机的IP地址
问题描述
在很多软件配置过程中,都需要设置ID信息,通常我选择使用系统配置的eth0网卡的IP地址信息,比如salt-minion-id,在通过cobbler批量安装操作系统时,会给操作系统自定义或者DHCP配置IP地址信息,然后在之后的配置过程中,如何将该IP地址取出来,配置到minion_id文件中,也是一个小问题。
正则表达式
最近看了一下正则表达式,想通过正则表达式的方式,从命令行中,获取到IP地址信息。不带任何其他信息的。
- 获取IP地址信息
通过ip addr show eth0和ifconfig eth0,查看eth0网卡信息。
[root@salt-master ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:90:36:9d brd ff:ff:ff:ff:ff:ff
inet 192.168.64.131/24 brd 192.168.64.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe90:369d/64 scope link
valid_lft forever preferred_lft forever
我们要获取的是inet地址,192.168.64.131,只是一个地址,不需要/24的掩码和其他信息。
- sed截取
主要的实现方式是,通过sg替换,将不需要的内容匹配出来,然后替换为空,然后保留最后的信息。
sed -n 取消默认输出,只显示sed之后的结果
sed 's###g' 查找,替换
sed p 打印编辑后的内容, 's###gp'
[root@salt-master ~]# ip addr show eth0|sed -n 's#.*inet ##gp'
192.168.64.131/24 brd 192.168.64.255 scope global eth0
匹配inet之前的部分,然后全部替换为空,然后打印出来
上面就已经截取出来IP地址部分了,但是后面还有一些信息不需要。再匹配一次
[root@salt-master ~]# ip addr show eth0|sed -n 's#.*inet ##gp'|sed -n 's#/.*##gp'
192.168.64.131
匹配掩码/和后面所有内容,然后替换为空,打印出来,这样就显示出来IP地址了。
- sed后向引用
sed有一个方法,后向引用,将sed匹配的内容,在替换部分打印出来,用的是正则表达式中的()。以上么截取IP地址为例,通过后向引用,获取IP地址,具体如下:
[root@salt-master ~]# ip addr show eth0|sed -nr 's#.*inet (.*)/.*#\1#gp'
192.168.64.131
这个解释起来比较简答,首先是获取eth0的全部输出,然后匹配 .*inet (.)/. ,这就匹配到第二行字段,然后括号里面匹配到的是IP地址信息,然后通过后向引用\1,直接展示出来。
如果括号比较多,可以以此类推,\2 \3这么展示。
其实获取IP地址还有很多简单的方法,比如直接文件中进行截取等等。
获取系统的IP地址的更多相关文章
- java获取本机IP地址
转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...
- python获取本机IP地址
方法一 通常使用socket.gethostname()方法即可获取本机IP地址,但有时候获取不到(比如没有正确设置主机名称) import socket #获取计算机名称hostname=socke ...
- dedecms自定义表单提交获取时间跟ip地址
相信大家在用织梦做网站的时候都用过自定义表单做留言,但是如何查看客户什么时间填写的表单,和客户的IP地址呢? 我在网上找了很多JS文件,但太繁琐了,后来我注意到一个细节,每次我登陆后台,织梦系统都会记 ...
- 如何根据HttpServletRequets获取用户真实IP地址
最近的一个项目的某个功能获取用户的ip地址,添加用户的系统使用记录. 我发现当我直接使用getRemoteAddr()方法从HttpServletRequet中获取用户的ip时,获取到的是服务器的ip ...
- 获取本地的IP地址(内网)
方法一 public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = N ...
- 获取本机IP地址
这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...
- 关于是用dotnet获取本机IP地址+计算机名的方法
印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...
- 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)
一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...
- CDN下nginx获取用户真实IP地址
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户 ...
随机推荐
- idea创建maven项目慢的原因以及解决方案
问题分析;在idea中maven项目所依赖的jar包,默认是从中央仓库直接下载jar包,不管jar包是否在本地仓库存在,所以导致idea创建maven项目速度慢,那么要解决这个问题,那么将idea设置 ...
- 关于Vue data对象赋值的问题
遇到这么一个问题: 把data中的某个对象赋值给一个变量,修改变量,会同时把data中的对象也一同修改,所以,这个赋值应该就是引用了地址,贴个代码 <script> export defa ...
- 自动化测试: Selenium 自动登录授权,再 Requests 请求内容
Selenium 自动登录网站.截图及 Requests 抓取登录后的网页内容.一起了解下吧. Selenium: 支持 Web 浏览器自动化的一系列工具和库的综合项目. Requests: 唯一的一 ...
- 50个SQL语句(MySQL版) 问题七
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- Java实现 LeetCode 803 打砖块 (DFS)
803. 打砖块 我们有一组包含1和0的网格:其中1表示砖块. 当且仅当一块砖直接连接到网格的顶部,或者它至少有一块相邻(4 个方向之一)砖块不会掉落时,它才不会落下. 我们会依次消除一些砖块.每当我 ...
- Java实现 LeetCode 788 旋转数字(暴力)
788. 旋转数字 我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数.要求每位数字都要被旋转. 如果一个数的每位数字被旋转以后仍然还 ...
- Java实现 蓝桥杯VIP 基础练习 Huffuman树
基础练习 Huffuman树 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Hu ...
- 使用Pycharm安装插件时发生错误
报错内容:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.o ...
- java实现找素数
** 找素数** 素数就是不能再进行等分的整数.比如:7,11.而9不是素数,因为它可以平分为3等份.一般认为最小的素数是2,接着是3,5,- 请问,第100002(十万零二)个素数是多少? 请注意: ...
- Fiddler13模拟弱网络环境测试
前言现在的Android软件,基本上都会有网络请求,有些APP需要频繁的传输数据时对于网络请求的稳定性和在特殊网络条件下的兼容性有要求,但是我们在测试的时候又很难模拟那种弱网络差网络的情况,今天就给大 ...