欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python 得到 本机 公网地址 公网ip 本地ip 局域网ip 文心一言 chatgpt 有大用

import requests

import socket





def get_public_ip():

response = requests.get('https://ipinfo.io/json')

ip = response.json().get('ip')

   return ip





def get_local_ip():

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.connect(('8.8.8.8', 80))  #这是DNS服务器的 UDP 80端口

local_ip = s.getsockname()[0]

s.close()

   return local_ip





if __name__ == '__main__':

public_ip = get_public_ip()

local_ip = get_local_ip()

   print(f'Public IP: {public_ip}')

   print(f'Local IP: {local_ip}')

在这个示例中,get_public_ip 函数使用 requests 库发送 HTTP 请求到 https://ipinfo.io/json,获取本机的公网 IP 地址。get_local_ip 函数使用 socket 库创建一个 UDP 套接字并连接到一个公共 DNS 服务器,然后获取本机的本地 IP 地址。最后,我们在 main 函数中调用这两个函数,并打印出公网 IP 和本地 IP。

请注意,获取公网 IP 的方法依赖于外部服务,如果无法访问该服务,则无法获取公网 IP。此外,如果你的计算机位于防火墙或代理服务器后面,可能无法获取到准确的公网 IP 地址。


普通分类: