Python 获取当前IP地址(爬虫代理)

Python 获取当前IP地址(爬虫代理)

在Python中,获取当前的公网IP地址通常涉及到发送一个请求到外部服务,因为本地IP地址通常只在你的私有网络内部是可见的,而公网IP地址是由你的ISP(互联网服务提供商)分配的。
一个常见的方法是使用第三方API或服务,如 httpbin.org 提供的 ip 端点。以下是使用 requests

库获取当前公网IP的示例:

python 复制代码
import requests

def get_public_ip():
    try:
        response = requests.get('https://httpbin.org/ip')
        response.raise_for_status()  # 检查请求是否成功
        ip = response.json()['origin']
        return ip
    except requests.RequestException as e:
        print(f"请求出错: {e}")
        return None
# 获取并打印当前的公网IP
public_ip = get_public_ip()
if public_ip:
    print(f"当前公网IP地址是: {public_ip}")
复制代码
在这个示例中,我们向 httpbin.org/ip 发送了一个GET请求,这个服务会返回一个包含请求信息的JSON对象,其中包括了 origin 字段,该字段包含了发起请求的源IP地址。

请注意,这个IP地址是公网IP地址,它可能代表了你的整个网络(如果你是在局域网后面),而不一定是你计算机的本地IP地址。
  • 如果你想要获取本地网络中的IP地址,你可以使用Python的 socket 库来实现:
python 复制代码
import socket

def get_local_ip():
    try:
        hostname = socket.gethostname()
        local_ip = socket.gethostbyname(hostname)
        return local_ip
    except socket.error as e:
        print(f"获取本地IP出错: {e}")
        return None
# 获取并打印当前的本地IP
local_ip = get_local_ip()
if local_ip:
    print(f"当前本地IP地址是: {local_ip}")

这段代码将返回你的计算机在本地网络中的IP地址。如果你的计算机连接到多个网络或具有多个网络接口,你可能需要检查每个接口来找到正确的IP地址。

请确保你已经安装了 requests 库,如果没有安装,可以使用以下命令安装:

复制代码
pip install requests

获取公网IP的方法可能会因网络环境和地理位置而异,如果你在一个受限制的网络环境中,你可能需要使用不同的服务或API。

相关推荐
lulu121654407819 分钟前
Claude Code项目大了响应慢怎么办?Subagents、Agent Teams、Git Worktree、工作流编排四种方案深度解析
java·人工智能·python·ai编程
Ares-Wang42 分钟前
Flask》》 Flask-Bcrypt 哈希加密
后端·python·flask
kongba0071 小时前
项目打包 Python Flask 项目发布与打包专家 提示词V1.0
开发语言·python·flask
belldeep2 小时前
介绍 遗传算法 与 TSP问题
python·遗传算法·ga·tsp问题
解救女汉子2 小时前
SQL触发器如何获取触发源应用名_利用APP_NAME函数追踪
jvm·数据库·python
思绪无限3 小时前
YOLOv5至YOLOv12升级:血细胞检测系统的设计与实现(完整代码+界面+数据集项目)
人工智能·python·深度学习·目标检测·计算机视觉·yolov12·血细胞检测
skywalk81634 小时前
发现Kotti项目的python包Beaker 存在安全漏洞
开发语言·网络·python·安全
天天进步20155 小时前
Python全栈项目:从零构建基于 Django 的知识管理系统(KMS)
开发语言·python·django
珎珎啊5 小时前
Python3 迭代器与生成器
开发语言·python
上海合宙LuatOS5 小时前
LuatOS扩展库API——【libnet】TCP/UDP协议
物联网·tcp/ip·junit·udp·luatos