使用脚本从“ifconfig”捕获特定详细信息

使用脚本从“ifconfig”捕获特定详细信息

假设我ifconfig为所连接的网络运行命令。

如何编写一个 bash 脚本来使用此命令并查找后面的内容inetnetmaskbroadcast在终端中以列表形式打印这些 IP 地址而不显示命令ifconfig。因此,当脚本运行时,它将仅输出所选网络的 3 个 IP 地址。

答案1

这里使用以下脚本获取与命令输出中的 、 和 行inet相关netmask的IP 地址。请注意,我使用网络接口作为示例broadcastifconfigwlp3s0

要显示 inet 地址,只需在连接的接口上运行以下命令,即将其替换wlp3s0为所连接的网络接口的名称:

1. 网络

ifconfig wlp3s0 | grep -o -e "inet\ addr:\([0-9]\{1,3\}.\)\{3\}.[0-9]\{1,3\}" | grep -o -e "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"

2. 网络掩码

ifconfig wlp3s0 | grep -o -e "Mask:\([0-9]\{1,3\}.\)\{3\}.[0-9]\{1,3\}" | grep -o -e "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"

3. 广播

ifconfig wlp3s0 | grep -o -e "Bcast:\([0-9]\{1,3\}.\)\{3\}.[0-9]\{1,3\}" | grep -o -e "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"

另外如果要输出接口的MAC地址,使用以下命令:

ifconfig wlp3s0 | grep -o -e "HWaddr \([0-9a-f]\{2\}:\)\{5\}[0-9a-f]\{2\}" | grep -o -e "\([0-9a-f]\{2\}:\)\{5\}[0-9a-f]\{2\}"

相关内容