Python技术需求:从数据库读取IP列表并实现地点关联PING测试
没问题,我来帮你搞定这个需求!咱们用轻量的SQLite数据库来存储你的地点和对应IP就很合适,不用额外装数据库服务,上手超简单。下面一步步来实现:
1. 先搞定数据库结构
首先创建一个叫location_ips.db的数据库,里面建一张表来存地点和对应的4个IP。你可以用SQLite的可视化工具(比如DB Browser for SQLite)或者直接用Python代码创建,这里先给你表结构的SQL语句:
CREATE TABLE locations ( id INTEGER PRIMARY KEY AUTOINCREMENT, location_name TEXT NOT NULL UNIQUE, -- 存地点名称或编码 ip1 TEXT NOT NULL, ip2 TEXT NOT NULL, ip3 TEXT NOT NULL, ip4 TEXT NOT NULL );
之后把你的200个地点数据插进去,比如手动插几条测试数据:
INSERT INTO locations (location_name, ip1, ip2, ip3, ip4) VALUES ('北京机房', '192.168.1.1', '192.168.1.2', '192.168.1.3', '192.168.1.4'), ('上海机房', '10.0.0.1', '10.0.0.2', '10.0.0.3', '10.0.0.4');
2. 编写Python代码实现核心功能
接下来把读取数据库和PING测试的逻辑整合起来,完整代码如下:
import os import sqlite3 def get_location_ips(location_input): # 连接数据库 conn = sqlite3.connect('location_ips.db') cursor = conn.cursor() # 根据输入的地点名称/编码查询对应IP cursor.execute("SELECT ip1, ip2, ip3, ip4 FROM locations WHERE location_name = ?", (location_input,)) result = cursor.fetchone() conn.close() return result def ping_ips(ip_list): if not ip_list: print("未找到对应地点的IP信息,请检查输入是否正确!") return print(f"\n=== 开始测试目标地点的4个IP ===") for idx, ip in enumerate(ip_list, 1): print(f"\n--- 测试IP {idx}: {ip} ---") # 适配Windows和类Unix系统的PING参数 if os.name == 'nt': exit_code = os.system(f'ping {ip} -n 3') else: exit_code = os.system(f'ping {ip} -c 3') # 根据返回码判断连通状态 if exit_code == 0: print(f"✅ IP {ip} 连通正常") else: print(f"❌ IP {ip} 连通失败") if __name__ == "__main__": print("欢迎使用地点IP批量PING测试工具(输入q退出)") while True: location = input("请输入地点名称或编码:") if location.lower() == 'q': print("程序已退出,再见!") break target_ips = get_location_ips(location) ping_ips(target_ips)
3. 代码关键点说明
- 数据库操作:用Python自带的
sqlite3模块,不用额外安装依赖,200个地点的数据量完全能轻松处理。 - 查询逻辑:通过输入的地点名称/编码精准匹配数据库中的记录,直接返回对应的4个IP。
- 跨系统适配:自动判断操作系统,用对应的PING参数(Windows用
-n,Linux/macOS用-c),避免报错。 - 交互体验:支持多次输入查询,输入
q就能退出,不用反复重启程序。
4. 实用扩展建议
- 批量导入数据:如果要导入200个地点的IP,别手动插!可以把数据整理成CSV文件,用Python的
csv模块写个小脚本批量插入数据库,效率拉满。 - 错误处理优化:可以加一些异常捕获,比如数据库连接失败、输入为空时的友好提示。
- 日志记录:把每次PING的结果写入日志文件,方便后续复盘查看。
内容的提问来源于stack exchange,提问作者Sholah Muchsin
相关产品推荐
相关产品推荐

