本文目录导读:

Linux 系统
使用 Shell 脚本
#!/bin/bash
# 获取网络接口配置
echo "=== 网络接口信息 ==="
ip addr show
# 获取路由表
echo -e "\n=== 路由表 ==="
ip route show
# 获取DNS配置
echo -e "\n=== DNS 配置 ==="
cat /etc/resolv.conf
# 获取主机名
echo -e "\n=== 主机名 ==="
hostname
# 获取特定接口配置
echo -e "\n=== 特定接口状态 ==="
for interface in $(ls /sys/class/net/); do
echo "接口: $interface"
ethtool $interface 2>/dev/null | head -5
done
保存到文件的脚本
#!/bin/bash
OUTPUT_FILE="/tmp/network_config_$(date +%Y%m%d).txt"
{
echo "=== 网络配置备份 ==="
echo "时间: $(date)"
echo ""
echo "=== ifconfig 输出 ==="
ifconfig -a
echo ""
echo "=== 网络配置文件 ==="
for config_file in /etc/network/interfaces /etc/sysconfig/network-scripts/ifcfg-*; do
if [ -f "$config_file" ]; then
echo "文件: $config_file"
cat "$config_file"
echo "---"
fi
done
} > "$OUTPUT_FILE"
echo "配置已保存到: $OUTPUT_FILE"
Windows 系统
PowerShell 脚本
# 获取所有网络适配器信息
$adapters = Get-NetAdapter | Select-Object Name, Status, MacAddress, LinkSpeed
# 获取IP配置
$ipconfig = Get-NetIPConfiguration | Select-Object InterfaceAlias,
@{Name="IPAddress";Expression={$_.IPv4Address.IPAddress}},
@{Name="SubnetMask";Expression={$_.IPv4Address.PrefixLength}},
@{Name="DefaultGateway";Expression={$_.IPv4DefaultGateway.NextHop}}
# 获取DNS配置
$dns = Get-DnsClientServerAddress | Where-Object {$_.ServerAddresses -ne $null}
# 输出到文件
$output = @"
网络配置报告
时间: $(Get-Date)
网络适配器:
$($adapters | Format-Table | Out-String)
IP配置:
$($ipconfig | Format-Table | Out-String)
DNS服务器:
$($dns | Select-Object InterfaceAlias, ServerAddresses | Format-Table | Out-String)
"@
$output | Out-File -FilePath "C:\network_config_$(Get-Date -Format 'yyyyMMdd').txt"
CMD 批处理脚本
@echo off set OUTPUT_FILE=C:\network_config_%date:~0,4%%date:~5,2%%date:~8,2%.txt echo 网络配置备份 > %OUTPUT_FILE% echo 时间: %date% %time% >> %OUTPUT_FILE% echo. >> %OUTPUT_FILE% echo ===== ipconfig /all ===== >> %OUTPUT_FILE% ipconfig /all >> %OUTPUT_FILE% echo. >> %OUTPUT_FILE% echo ===== 网络连接状态 ===== >> %OUTPUT_FILE% netstat -an >> %OUTPUT_FILE% echo. >> %OUTPUT_FILE% echo ===== 路由表 ===== >> %OUTPUT_FILE% route print >> %OUTPUT_FILE% echo 配置已保存到 %OUTPUT_FILE%
macOS 系统
Shell 脚本
#!/bin/bash
OUTPUT_FILE="/tmp/mac_network_config_$(date +%Y%m%d).txt"
{
echo "=== macOS 网络配置 ==="
echo "时间: $(date)"
echo ""
# 所有网络服务
echo "=== 网络服务 ==="
networksetup -listallnetworkservices
echo ""
echo "=== 所有接口配置 ==="
ifconfig -a
echo ""
echo "=== DNS 配置 ==="
scutil --dns
echo ""
echo "=== 路由表 ==="
netstat -rn
} > "$OUTPUT_FILE"
echo "配置已保存到: $OUTPUT_FILE"
Python 跨平台脚本
#!/usr/bin/env python3
import subprocess
import platform
import datetime
import os
def get_network_config():
"""获取网络配置信息"""
system = platform.system()
output = []
output.append(f"系统: {system}")
output.append(f"时间: {datetime.datetime.now()}")
output.append("=" * 50)
if system == "Windows":
# Windows系统
commands = [
("IP配置", "ipconfig /all"),
("路由表", "route print"),
("ARP表", "arp -a")
]
else:
# Linux/macOS
commands = [
("接口信息", "ip addr show" if system == "Linux" else "ifconfig -a"),
("路由表", "ip route show" if system == "Linux" else "netstat -rn"),
("DNS配置", "cat /etc/resolv.conf")
]
for title, cmd in commands:
try:
result = subprocess.run(cmd.split(), capture_output=True, text=True)
output.append(f"\n=== {title} ===")
output.append(result.stdout)
except Exception as e:
output.append(f"获取{title}失败: {e}")
return "\n".join(output)
# 保存到文件
config = get_network_config()
filename = f"network_config_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.txt"
with open(filename, 'w', encoding='utf-8') as f:
f.write(config)
print(f"配置已保存到: {os.path.abspath(filename)}")
print(config)
图形界面版本(Windows PowerShell)
Add-Type -Assembly System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text = "网络配置查看器"
$form.Size = New-Object System.Drawing.Size(800,600)
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Multiline = $true
$textBox.ScrollBars = "Vertical"
$textBox.Dock = "Fill"
$textBox.Font = New-Object System.Drawing.Font("Consolas",10)
$button = New-Object System.Windows.Forms.Button
$button.Text = "刷新"
$button.Dock = "Bottom"
$button.Add_Click({
$output = ipconfig /all | Out-String
$textBox.Text = $output
})
$form.Controls.Add($textBox)
$form.Controls.Add($button)
$form.ShowDialog()
使用方法
- 保存脚本:将对应系统的脚本保存为文件(如
get_network.sh) - 添加执行权限(Linux/macOS):
chmod +x get_network.sh
- 运行脚本:
- Linux/macOS:
./get_network.sh - Windows PowerShell: 右键运行或
.\get_network.ps1 - Python:
python get_network.py
- Linux/macOS:
这些脚本会获取并保存网络配置信息到文件,方便查看和分析。