如何使用python2.7获取公共IP?

2024-03-28

如何使用python2.7获取公共IP?不是私有IP。


目前有几种选择:

  • ip.42.pl
  • jsonip.com
  • httpbin.org
  • ipify.org

以下是您可以利用上述各项的具体方法。

ip.42.pl

from urllib2 import urlopen
my_ip = urlopen('http://ip.42.pl/raw').read()

这是我找到的第一个选择。对于脚本来说非常方便,这里不需要JSON解析。

jsonip.com

from json import load
from urllib2 import urlopen

my_ip = load(urlopen('https://ipv4.jsonip.com'))['ip']

看起来这个域的唯一目的是返回 JSON 格式的 IP 地址。

httpbin.org

from json import load
from urllib2 import urlopen

my_ip = load(urlopen('http://httpbin.org/ip'))['origin']

httpbin.org 是我经常推荐给初级开发人员用于测试他们的脚本/应用程序的服务。

ipify.org

from json import load
from urllib2 import urlopen

my_ip = load(urlopen('https://api.ipify.org/?format=json'))['ip']

该服务的强大之处在于缺乏限制(没有速率限制)、基础设施(放置在 Heroku 上,考虑到高可用性)和灵活性(适用于 IPv4 和 IPv6)。

EDIT: Added httpbin.org http://httpbin.org到可用选项列表。

EDIT: Added ipify.org http://www.ipify.org/谢谢克特的笔记 https://stackoverflow.com/questions/9481419/how-can-i-get-the-public-ip-using-python2-7/9481595?noredirect=1#comment48399540_9481595.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用python2.7获取公共IP? 的相关文章

随机推荐

  • SignalR 响应覆盖标头

    我构建了一个位于 WebAPI 服务中的简单 SignalR 中心 并在 WebAPI 和 SignalR 上包含了所有必需的 CORS 属性 我的 WebAPI 端点都按预期工作 但 SignalR 却没有 我已经尝试了我能想到的所有方法
  • C中使用函数计算数组长度

    我想创建一个函数来计算传递数组的大小 我将传递一个数组作为输入 它应该返回其长度 我想要一个函数 int ArraySize int Array Or int Array Calculate Length of Array and Retu
  • Dash Python 应用程序按钮用于操作和刷新页面

    Dash App 中需要有一个回调函数来执行某些操作然后刷新页面 只能使用 HTML A 标签实现页面重新加载 html A html Button Refresh Data href 必需的 app layout html Div htm
  • 为什么 std::vector::insert 需要复制赋值?

    我试图理解以下行为 include
  • 在 Python 中使用 Nan 对图像进行高斯滤波

    根据 2D 坐标列表和第三个变量 速度 我创建了一个覆盖整个采样区域的 2D numpy 数组 我的目的是创建一个图像 其中每个像素包含位于其中的点的平均速度 之后用高斯滤波器过滤该图像 问题是该区域没有均匀采样 因此我有几个没有信息的像素
  • iOS:当应用程序因崩溃而退出时,是否有任何委托方法

    当我的应用程序因内存不足 内存泄漏等一般崩溃而崩溃时退出时 我想与我的服务器进行一些交互 我想知道 在这种情况下是否会调用任何委托方法 以便我可以在应用程序因任何崩溃而退出之前快速联系我的服务器 谢谢 正如您所解释的 您需要联系服务器 您可
  • C 中带有 const 的“私有”结构成员

    为了拥有干净的代码 使用一些 OO 概念可能很有用 即使在 C 中也是如此 我经常编写由一对 h 和 c 文件组成的模块 问题是模块的用户必须小心 因为 C 中不存在私有成员 使用 pimpl 习惯用法或抽象数据类型是可以的 但它添加了一些
  • Gitlab 管道 - 报告配置包含未知键:cobertura

    由于此错误 我无法运行 gitlab 管道 Invalid CI config YAML file jobs run tests artifacts reports config contains unknown keys cobertur
  • 如何在 iPhone 中获取时差

    我有 2 个包含时间值的数组 它们采用以下格式 mm ss 数百秒 我想获得数组中两个 lastObjects 之间的差异 NSDate 不起作用 因为最后一个值以百分之一秒为单位 一个问题 如果第二个日期比第一个日期大 它会给我一个负数
  • FlowDocument 强制分页(之前分页)

    我使用 C 创建 FlowDocument 并用表中的数据填充它 Example FlowDocument flowDoc new FlowDocument Table table1 new Table flowDoc Blocks Add
  • 从 JQuery 附加 Laravel Blade

    我正在尝试从 Laravel 附加 Blade 语法 但无法让浏览器理解 Blade 当我从 js 文件附加 Blade 语法时 它将代码输出到页面上 this is my code Current box append if errors
  • 是什么导致 System.Drawing.Printing.PrinterSettings.InstalledPrinters 抛出 Win32Exception“RPC 服务器不可用”?

    我正在开发一个应用程序 我允许用户在从应用程序打印表单时选择一台打印机用作他们的打印机 我正在使用 NET 2 0 在设置屏幕中 我调用 System Drawing Printing PrinterSettings InstalledPr
  • Android ListView:获取可见项的数据索引

    我有一个安卓ListView创建与SimpleAdapter里面的项目多于屏幕所能容纳的项目 滚动列表后 我需要获取列表中第一个可见项目在数据模型中的位置 基本上我想要一个像这样的函数 listView getChildAt 0 getPo
  • 使用javascript比较路径并获取两个文件之间的相对路径

    如何动态比较同一域中的两个路径并获取它们之间的相对路径 var path2 http site net test1 test2 img 1 jpg test example var path3 http site net test1 img
  • .NET 4.5 MethodInfo 序列化重大更改

    问题 一个对象 带有私有MethodInfo使用程序集 1 0 版本序列化的字段 不会使用该程序集的 1 1 版本 aSerializationException将被抛出 因为尚未找到所需的方法 发生了什么变化 我发现 NET 4 5中的序
  • python pyaudio 使用多处理

    我正在尝试从音频流中获取样本并将它们放入共享队列中 我有另一个进程从该队列中提取 当我运行时 我收到此错误 recording Traceback most recent call last File record py line 43 i
  • 消息队列 makefile 错误:未定义对“mq_open”的引用

    虽然我已经链接了 lrt在我的 Makefile 中 正如你在下面看到的 我仍然得到undefined reference to mq open 请帮忙 all get1 iserv1 get get1 c gcc Wall o get1
  • java.time.Period ,除以周期会给出错误的结果

    我尝试使用java time Period 结果和我手工计算的结果相差了三天 这里奇怪的是 当我将时间段分为两个时间段时 结果与我的手动计算相符 第二种方法就像我手动计算周期一样 我是否错过了什么 日历算术有标准方法或算法吗 使用的算法是什
  • “没有这样的文件或目录”但它存在

    我只想从命令行运行可执行文件 arm mingw32ce g 但随后我收到错误消息 bash arm mingw32ce g No such file or directory 我运行的是 Ubuntu Linux 10 10 ls l l
  • 如何使用python2.7获取公共IP?

    如何使用python2 7获取公共IP 不是私有IP 目前有几种选择 ip 42 pl jsonip com httpbin org ipify org 以下是您可以利用上述各项的具体方法 ip 42 pl from urllib2 imp