shell脚本:统计服务器mac地址与ip地址的对应关系

1. 统计当前服务器mac地址与ip地址的对应关系

#!/usr/bin/env bash

data=$(ip a;ip r)
num=$(echo "$data"|grep -E '^[0-9]{,2}:'|grep -E '^[0-9]{,2}' -o)
num2=$(echo -e "$num\ndefault")
n=2
for i in $num; do
        end=$(echo "$num2"| head -n "$n"| tail -n 1)
        line_data=$(echo "$data" | awk "/^"$i:"/,/^"$end"/"| grep -E 'link|inet'|grep -v inet6)
        lines=$(echo "$line_data" | wc -l)
        if [ "$lines" -eq 2 ]; then
                mac=$(echo "$line_data" | grep -E "([a-z0-9]{2}:){5}[a-z0-9]{2} brd"  -o  | grep -E "([a-z0-9]{2}:){5}[a-z0-9]{2}"  -o )
                ip=$(echo "$line_data" | grep -E  "inet ([0-9]{,3}.){3}[0-9]{,3}/" -o | grep -E "([0-9]{,3}\.){,3}[0-9]{,3}" -o)
                if [ "$ip" != "127.0.0.1" ]; then
                        echo -n -e "$server_name"  "$mac" "$ip\n"
                fi
        fi
        n=$(expr "$n" + 1)
done

  

posted @ 2024-12-14 21:54  铿锵有力自信且坚定  阅读(19)  评论(0)    收藏  举报