处理 Excel 文件获取 IP 网段
我获取了一份有 IP 网段的 Excel 表,这些 IP 网络段是用来在登录后台时判断 IP 是否允许时使用。
Excel 表的格式如下:
| 起始号段 | 结束号段 |
|---|---|
| 1.192.0.0 | 1.192.7.255 |
| 1.192.16.0 | 1.192.71.255 |
我现在需要处理这个 Excel,将其中的 IP 地址转换为数字形式,并生成适合导入 MySQL 的 CSV 格式数据。
现在是使用 Python 进行处理。需要安装 pandas,使用 pip 安装pip install pandas。IP 地址转换为整数时使用的是无符号 32 位整数表示。
脚本代码如下:
import pandas as pd
import ipaddress
# 1. 读取Excel文件(请将'ip_ranges.xlsx'替换为您的实际文件名)
excel_file = 'ip_ranges.xlsx'
df = pd.read_excel(excel_file)
# 2. 定义IP地址转数字的函数
def ip_to_int(ip_str):
"""将IP地址字符串转换为整数"""
return int(ipaddress.ip_address(ip_str))
# 3. 转换IP地址为数字
df['起始数字'] = df['起始号段'].apply(ip_to_int)
df['结束数字'] = df['结束号段'].apply(ip_to_int)
# 4. 生成输出结果
output_lines = []
for _, row in df.iterrows():
line = f"{row['起始数字']},{row['结束数字']}"
output_lines.append(line)
# 5. 打印转换结果
print("IP地址范围转换为数字后的结果:")
for line in output_lines:
print(line)
# 6. 保存为CSV文件(可直接导入MySQL)
output_csv = 'ip_ranges_converted.csv'
df[['起始数字', '结束数字']].to_csv(output_csv, index=False, header=False)
print(f"\n转换结果已保存到 {output_csv} 文件,可直接导入MySQL。")
将这段代码保存为一个.py 文件,例如 ip_converter.py。然后将 Excel 文件和脚本保存在同一个目录,然后运行脚本即可。