python判断ip是否是本机

银河麒麟服务器上下载脚本进行部署的时候,需要判断是部署在本机还是部署在远程服务器上,需要走不同的处理逻辑。

在Python中判断一个IP地址是否是本机的,可以采用以下方法:

import socket

def is_local_ip(ip_address):
    # 获取本机所有网络接口信息
    interfaces = socket.gethostbyname_ex(socket.gethostname())[2]

    # 检查输入的IP地址是否在本机IP列表中
    return ip_address in interfaces

# 测试给定IP地址
ip_to_check = "192.168.0.1"
if is_local_ip(ip_to_check):
    print(f"IP {ip_to_check} 是本机IP地址")
else:
    print(f"IP {ip_to_check} 不是本机IP地址")

这段代码首先通过socket.gethostname()获取主机名,然后使用gethostbyname_ex()获取与该主机名关联的所有IP地址。之后,它检查输入的IP地址是否存在于这个IP地址列表之中。

注意:这种方法可能返回包括本地回环地址(例如 '127.0.0.1' 或 '::1')在内的所有本地接口地址。如果你只想检查非回环的真实网络接口上的IP地址,可以在比较前过滤掉回环地址。

你可能感兴趣的:(python,tcp/ip,网络)