python 编写一个ip地址图形程序 根据txt文件里面ip前两个地址生成ip地址段
时间: 2023-08-09 21:09:53 浏览: 95
python生成IP段的方法
以下是一个简单的 Python 程序,可以根据给定的 IP 地址文件生成 IP 地址段,并将其显示在一个图形界面中。
首先,我们需要安装 `tkinter` 模块,这是 Python 自带的 GUI 库。如果你使用的是 Anaconda 或者其他 Python 发行版,则不需要额外安装该模块。
```python
import tkinter as tk
import re
class IPAddressApp:
def __init__(self, filename):
self.filename = filename
self.ip_list = self.read_ip_file()
self.root = tk.Tk()
self.root.title("IP Address Ranges")
self.root.geometry("400x300")
self.canvas = tk.Canvas(self.root, bg="white")
self.canvas.pack(fill="both", expand=True)
self.draw_ip_ranges()
self.root.mainloop()
def read_ip_file(self):
with open(self.filename, "r") as f:
lines = f.readlines()
ip_list = []
for line in lines:
# extract the first two octets of the IP address
match = re.search(r"(\d+\.\d+)\.\d+\.\d+", line)
if match:
ip_list.append(match.group(1))
return ip_list
def draw_ip_ranges(self):
y_offset = 50
for ip in self.ip_list:
self.canvas.create_text(200, y_offset, text=f"{ip}.0/24")
y_offset += 30
if __name__ == "__main__":
app = IPAddressApp("ip_addresses.txt")
```
在上面的代码中,我们定义了一个 `IPAddressApp` 类,它的构造函数会从指定的文件中读取 IP 地址,并将其保存在实例变量 `ip_list` 中。然后,我们创建一个窗口和一个画布,并在画布上绘制 IP 地址段。
为了读取 IP 地址文件,我们使用了 Python 的正则表达式模块 `re`。我们搜索每一行中的 IP 地址,并提取前两个 octet。然后,我们将这些 octet 保存在列表 `ip_list` 中。
在 `draw_ip_ranges` 方法中,我们遍历 `ip_list`,并为每一个 IP 地址绘制一个文本标签。我们在画布上使用 `create_text` 方法创建文本标签,并指定标签的位置和内容。
你可以将 IP 地址文件的名称替换为你自己的文件名,并运行该程序,以查看生成的 IP 地址段。
阅读全文