欢迎光临
我们一直在努力

python 获取本机ip地址的两个方法

1. 使用socket库的gethostname()和gethostbyname()方法;2. 使用requests库的get()方法访问ipify网站。

方法一:使用socket库获取本机IP地址

步骤:

1、导入socket库

2、创建一个socket对象

3、使用socket对象的gethostbyname()方法获取本机IP地址

4、关闭socket连接

代码示例:

import socket
def get_local_ip():
    # 创建一个socket对象
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        # 获取本机IP地址
        local_ip = socket.gethostbyname(socket.gethostname())
    finally:
        # 关闭socket连接
        s.close()
    return local_ip
print("本机IP地址:", get_local_ip())

方法二:使用requests库获取本机IP地址

步骤:

1、导入requests库

2、使用requests库的get()方法发送一个HTTP请求到网站,如"http://ipapi.com/json"

3、解析返回的JSON数据,提取本机IP地址信息

4、打印本机IP地址

代码示例:

import requests
def get_local_ip():
    # 发送HTTP请求获取本机IP地址信息
    response = requests.get("http://ipapi.com/json")
    data = response.json()
    # 提取本机IP地址信息
    local_ip = data["query"]["locality"] + " " + data["query"]["regionName"] + " " + data["query"]["country"] + " " + data["query"]["isp"]
    return local_ip
print("本机IP地址:", get_local_ip())

相关问题与解答:

1、问题:为什么使用两种不同的方法获取本机IP地址?

解答:因为不同的方法适用于不同的场景,使用socket库的方法可以获取到更准确的本地IP地址,而使用requests库的方法则可以通过访问外部网站来获取本机IP地址,适用于需要跨网络环境的场景。

2、问题:这两种方法是否都适用于所有操作系统和Python版本?

解答:是的,这两种方法都适用于大多数操作系统和Python版本,但是需要注意的是,在使用requests库之前,需要先安装该库,可以使用pip install requests命令进行安装。

赞(0) 打赏
未经允许不得转载:九八云安全 » python 获取本机ip地址的两个方法

评论 抢沙发