处理 Excel 文件获取 IP 网段

我获取了一份有 IP 网段的 Excel 表,这些 IP 网络段是用来在登录后台时判断 IP 是否允许时使用。

Excel 表的格式如下:

起始号段结束号段
1.192.0.01.192.7.255
1.192.16.01.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 文件和脚本保存在同一个目录,然后运行脚本即可。