41 lines
1.2 KiB
Bash
41 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# 设置输出文件名(使用时间戳来命名)
|
|
output_file="network_info_$(date +%Y%m%d_%H%M%S).txt"
|
|
|
|
# 将所有输出重定向到文件
|
|
{
|
|
echo "================物理网卡信息=================="
|
|
echo "生成时间: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo
|
|
|
|
# 获取物理网卡列表
|
|
physical_interfaces=$(ls -l /sys/class/net/ | grep -v virtual | grep devices | awk -F"/" '{print $NF}')
|
|
|
|
# IP地址
|
|
echo "---IP地址---"
|
|
for interface in $physical_interfaces; do
|
|
ip_addr=$(ip -4 addr show $interface 2>/dev/null | grep inet | awk '{print $2}')
|
|
if [ ! -z "$ip_addr" ]; then
|
|
echo "接口: $interface IP: $ip_addr"
|
|
fi
|
|
done
|
|
echo
|
|
|
|
# MAC地址
|
|
echo "---MAC地址---"
|
|
for interface in $physical_interfaces; do
|
|
mac=$(ip link show $interface | grep 'link/ether' | awk '{print $2}')
|
|
if [ ! -z "$mac" ]; then
|
|
echo "接口: $interface MAC: $mac"
|
|
fi
|
|
done
|
|
echo
|
|
|
|
echo "==================完成======================="
|
|
} > "$output_file"
|
|
|
|
# 同时在屏幕上显示结果
|
|
cat "$output_file"
|
|
|
|
echo -e "\n网络信息已保存到文件: $output_file" |