You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:55:07