linux下命令取IP地址的多种方法

经常会遇到在命令行取ip地址,或写脚本引用ip地址,需要使用命令取出来;下面的方法根据实际情况调整

下面的命令环境为centos6.6系统;

[[email protected] ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:2A:03:61  
          inet addr:192.168.20.50  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe2a:361/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:339 errors:0 dropped:0 overruns:0 frame:0
          TX packets:270 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:30384 (29.6 KiB)  TX bytes:30677 (29.9 KiB)
          Interrupt:18 Base address:0x2000 
          
          
[[email protected] ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:2a:03:61 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.50/24 brd 192.168.20.255 scope global eth0
    inet6 fe80::20c:29ff:fe2a:361/64 scope link
       valid_lft forever preferred_lft forever


grep+cut方法:

[[email protected] ~]# ifconfig eth0|grep ‘inet addr:‘|cut -d: -f2|cut -d " " -f1

192.168.20.50

sed方法:使用正则进行替换

[[email protected] ~]# ifconfig eth0|sed -nr ‘2s#^.*addr:(.*) Bca.*$#\1#g‘p
192.168.20.50

sed方法(不太好理解)

匹配/inet /这一行 进行2次替换,替换为空,剩下的就是ip地址;

[[email protected] ~]# ifconfig eth0|sed -n ‘/inet /{s/.*addr://;s/ .*//;p}‘

192.168.20.50

awk方法:

[[email protected] ~]# ifconfig eth0|awk ‘/inet addr:/ {print $2}‘|awk -F: ‘{print $2}‘

192.168.20.50

awk 一条命令方法:(根据实际环境,查看ip所在行进行调整)

[[email protected] ~]# ip add|awk -F ‘[ /]+‘ ‘NR==8 {print $3}‘

192.168.20.50

时间: 2024-08-03 05:27:37

linux下命令取IP地址的多种方法的相关文章

linux取IP地址的多种方法

对于很多linux初学者,还有很多基础面试时,都会可能遇到需要提取IP地址的问题,下面我总结了多种取IP址的方法,希望大家能学到知识 如下图,我需要提取出eth0的IP地址 方法一:使用awk实现 ifconfig eth0 |grep "inet addr" |awk '{print $2}' | awk -F : '{print $2}' 参数说明: awk 默认以空格为分隔符 -F 指定分隔符 '{print $2}' 输出第二个参数 方法二:使用sed实现 [[email pr

Linux下如何修改ip地址

在Linux的系统下如何才能修改IP信息 以前总是用ifconfig修改,重启后总是得重做.如果修改配置文件,就不用那么麻烦了- A.修改ip地址 即时生效: # ifconfig eth0 192.168.0.20 netmask 255.255.255.0 启动生效: 修改/etc/sysconfig/network-s/ifcfg-eth0 B.修改default gateway 即时生效: # route add default gw 192.168.0.254 启动生效: 修改/etc

Linux arping命令测试IP地址冲突

arping命令可以用来测试局域网各个主机之间的连通性,测试局域网中某个特定的IP地址是否已经被占用,进而可以有效检测局域网内的IP地址冲突问题. 如下图示例:arping -c 3 -f -D *.*.*.*(*.*.*.*为IP地址) 192.168.2.222返回空,说明这个IP地址没有被局域网占用. 192.168.2.106返回1,说明这个IP地址已经被占用,并且收到回复可以看到绑定该IP的终端的mac地址. arping命令详细介绍: 用法:arping [-fqbDUAV] [-c

Java-No.01 Java Linux下获取服务器ip地址

1.在window下获取本机ip地址 InetAddress inet = InetAddress.getLocalHost();   System.out.println("本机的ip=" + inet.getHostAddress()); 该方法在linux下获取到的ip为127.0.0.1,原因是你linux服务器上hosts配置了 127.0.0.1 localhost 可以修改hosts下将127.0.0.1改成你的本机真实ip地址 2.linux下代码获取本机ip地址 pu

linux ifconfig命令配置ip地址

Linux下网卡命名规律:eth0,eth1.第一块以太网卡,第二块. lo为环回接口,它的IP地址固定为127.0.0.1,掩码8位.它代表你的机器本身. ifconfig [Interface] 是查看网卡的信息 ,如果不加参数查看的是所有的网卡信息 加上参数eth0的话是查看eth0网卡的信息 网卡信息的一些解释: 第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址) 第二三行:网卡的IP地址.子网.掩码 第四行:UP(代表网卡开启状态)RUNNING(代表网卡的网线

Linux下获取网络接口ip地址

Linux 下 可以使用ioctl()函数以及结构体 struct ifreq和结构体struct ifconf来获取网络接口的各种信息. 如图,有br0和br1两个接口,当前需要获取br1的ip地址(当然其他接口信息如mac.子网掩码等都可以),方法如下: 具体过程是先通过ictol获取本地的所有接口信息,存放到ifconf结构中,再从其中取出每个ifreq表示的ip信息(一般每个网卡对应一个IP地址,如:"eth0-.eth1-"). 头文件: 1 #include <arp

linux中如何取ip地址

使用命令:awk .sed注意:要注意!正则有使用规则的!先看ip地址,使用命令:ifconfig eth0 |awk 'NR==2' / ifonfig eth0 |sed -n '2p'输出结果:省略一下,可以自己去试一下. ifconfig eth0 |awk 'NR==2' -F "[: ]+" '{print$4}' ifconfig eth0 |sed -nr '2s#^.(.) Bc.$#\1#gp' 难点在于要理解正则和三剑客配合使用的原因.需要多多在xshell上练习

Linux下扫描服务器IP地址是否冲突(arp-scan)

部署服务突然发现,连接的服务器断开了,因为服务器用户名密码是一样的,所以重新连接后,发现文件变了,跟之前不一样. 猜想是不是ip地址冲突了,两次连接的服务器不同. 网上查找资料说可以用工具扫描.工具:arp-scan. 服务器:Centos 7.X 工具:arp-scan:1.9.2 服务器上直接 使用 yum安装 提示找不到资源.官网已经将源码放在git上. 所以安装环境需要以下几个: git gcc libpcap libpcap-devel 安装完成后,使用命令下载文件 git clone

Linux下获取公网IP地址

直接CURL获取,页面返回结果 [[email protected]~]$ curl http://members.3322.org/dyndns/getip 218.1.1.10