Python获取当前服务器的公网IP

因为需要将dns的域名指向改为当前服务器,因此需要获取当服务器的公网IP,要在 Python 中获取当前服务器的公网 IP,你可以使用第三方服务提供的 API。这里提供两种常用的方法:

方法一:使用 ipify API

复制代码
import requests

def get_public_ip():
    try:
        response = requests.get('https://api.ipify.org?format=json')
        response.raise_for_status()
        data = response.json()
        return data['ip']
    except requests.exceptions.RequestException as e:
        print(f"获取公网 IP 失败:{e}")
        return None

public_ip = get_public_ip()
if public_ip:
    print(f"当前服务器的公网 IP 是:{public_ip}")
else:
    print("无法获取公网 IP")

方法二:使用 httpbin.org API

复制代码
import requests

def get_public_ip():
    try:
        response = requests.get('http://httpbin.org/ip')
        response.raise_for_status()
        data = response.json()
        return data['origin']
    except requests.exceptions.RequestException as e:
        print(f"获取公网 IP 失败:{e}")
        return None

public_ip = get_public_ip()
if public_ip:
    print(f"当前服务器的公网 IP 是:{public_ip}")
else:
    print("无法获取公网 IP")

这两种方法都使用了 requests 库发送 HTTP 请求到第三方 API 服务,以获取服务器的公网 IP。第一种方法使用了 ipify API,第二种方法使用了 httpbin.org API。

请注意,这些方法依赖于第三方服务,因此需要确保服务器可以访问这些 API 地址。如果服务器位于防火墙或代理之后,可能需要进行额外的网络配置。

在使用这些方法之前,请确保已经安装了 requests 库。你可以使用以下命令安装:

复制代码
pip install requests

如果你的服务器无法直接访问互联网,或者你希望使用其他方式获取公网 IP,可以考虑以下替代方案:

  1. 使用命令行工具,如 curlwget,访问类似的 IP 查询服务。

  2. 如果服务器位于云平台(如 AWS、Google Cloud 或 Azure),可以使用平台提供的 API 或元数据服务获取公网 IP。

  3. 如果你有可靠的外部服务器,可以设置一个定期更新 IP 的脚本,将当前服务器的公网 IP 发送到该外部服务器,然后从外部服务器获取 IP。

选择适合你的方案时,请考虑服务器的网络环境、安全要求和可用的资源。

相关推荐
TechWayfarer4 小时前
别让“能用”的IP拖垮业务——共享IP易封禁的原因与IP风险等级评估实战
网络·python·tcp/ip·安全
暴躁小师兄数据学院4 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第1章):Python基础与环境搭建
人工智能·笔记·python·ai
ZHW_AI课题组4 小时前
基于随机森林的红酒质量等级预测分类
人工智能·python·随机森林·机器学习
minji...5 小时前
Linux 高级IO(一)理解IO及其本质,理解五种IO模型,非阻塞IO,fcntl
服务器·网络·多路转接·高级io·非阻塞io·五种io模型·阻塞io
小a杰.5 小时前
Torchtitan NPU 框架 - PyTorch与NPU集成指南
人工智能·pytorch·python
码界筑梦坊5 小时前
153-基于FLask的英国希思罗机场天气数据可视化分析系统
python·信息可视化·数据分析·flask
weixin_468466855 小时前
目标识别算法落地实战:从选型到部署的全流程指南
图像处理·人工智能·python·算法·目标检测·机器视觉·目标识别
RD_daoyi5 小时前
Google 官方调整抓取工具 IP 文件路径:SEO 与服务器安全策略要变了?
服务器·人工智能·学习·tcp/ip·搜索引擎·chatgpt
treesforest5 小时前
如何查IP归属地?IP地址归属地查询的三种方式与选型指南
网络·数据库·网络协议·tcp/ip
NiceCloud喜云5 小时前
Anthropic 发布 Project Glasswing:未公开模型 Mythos 已挖出 10000+ 漏洞,含 OpenBSD 27 年老 bug
android·java·数据库·c++·python·docker·bug