欢迎各位兄弟 发布技术文章
这里的技术是共享的
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 地址。