本机ip地址和网络ip地址


本机ip地址和网络ip地址  

在维护企业网络时,确定IP地址的地理位置是非常关键的。面对大量的IP地址,我们不能依靠记忆或手动查询,而需要一个高效的方法来实现这一目标。许多同事依赖Excel表格的搜索功能来查询IP地址信息,但这并不是一个高效的方式。为此,我们可以使用Python来开发一个IP地址查询器,以提高工作效率。

一、操作准备

在操作之前,我们需要准备一些工具和模块。下载并安装PyCharm IDE工具。我们需要安装两个Python模块:ipaddress和pandas。其中,ipaddress模块是Python内置的,无需额外安装。而pandas模块则用于数据处理和分析。

二、操作步骤详解

安装完所需的模块后,我们可以开始编写代码。以下是完整的代码示例:

我们定义了一些函数来读取IP地址文件和Excel文件。`read_ip_addresses`函数用于读取包含IP地址的文本文件,`read_excel_file`函数用于读取包含网段和使用属性的Excel文件。这两个函数会返回相应的数据供后续使用。

接下来,我们定义了`check_ip_in_network`函数来检查一个IP地址是否属于某个网段。我们使用Python的ipaddress模块来实现这一功能。

在`main`函数中,我们读取IP地址文件和Excel文件,然后使用之前定义的函数来检查每个IP地址是否属于任何网段,并返回对应的内容。我们将结果输出到控制台。

以下是具体的代码实现:

导入所需的模块:

python

import ipaddress

import pandas as pd

定义读取IP地址文件的函数:

python

def read_ip_addresses(file_path):

try:

with open(file_path, 'r', encoding='utf-8') as file:

return [line.strip() for line in file.readlines()]

except FileNotFoundError:

print(f"文件 {file_path} 不存在")

return []

except Exception as e:

print(f"读取文件 {file_path} 时发生错误: {e}")

return []

定义读取Excel文件的函数:

python

def read_excel_file(file_path):

try:

xls_file = pd.ExcelFile(file_path)

df = xls_file.parse('Sheet1')

return df.iloc[:, 0], df.iloc[:, 1]

except FileNotFoundError:

print(f"文件 {file_path} 不存在")

return [], []

except Exception as e:

print(f"读取文件 {file_path} 时发生错误: {e}")

return [], []

定义检查IP地址是否属于网段的函数:

python

def check_ip_in_network(ip, network):

try:

ip_obj = ipaddress.ip_address(ip)

network_obj = ipaddress.ip_network(network)

return ip_obj in network_obj

except ValueError as e:

print(f"IP 地址或网段格式错误: {e}")

return False

主函数:

python

def main():

文件路径

ip_file_path = 'INPUT_IP.txt' IP地址文本文件路径

excel_file_path = 'NFZX_2_IP.xls' Excel文件路径

  本机ip地址和网络ip地址