UpT*_*eek 2 networking linux bash
我想知道是否可以动态读取网络接口的 IP 地址以在 bash 脚本中使用。就像是:
#!/bin/bash
MYPUBLICIP= get_eth0_address
MYPRIVATEIP= get_eth0:0_address
Run Code Online (Sandbox Code Playgroud)
[背景] 我正在尝试编写一个脚本,将各种规则应用于一组 VPS 的 iptables。我试图避免摆弄每台机器的单独 IP。
ip 将始终返回物理接口的所有地址记录,即使您指定了虚拟接口。
ifconfig 让我们指定一个接口,但解析起来有点烦人:
ifconfig eth0:0 |awk -F':| ' '/inet addr/{print $13}'
Run Code Online (Sandbox Code Playgroud)
编辑
该ip方式可以有更多的选择性AWK当然,进行管理:
ip -o -4 addr sh |awk '/eth0:0/{print $4}'
Run Code Online (Sandbox Code Playgroud)