python获取本机外网ip的方法

获取本机外网IP的方法有多种,下面我将介绍两种常用的方法。

方法一:使用第三方API

有一些第三方的IP查询接口可以用来获取本机的外网IP。其中一个常用的接口是https://api.ipify.org。你可以使用Python的requests库发送HTTP请求来获取外网IP。

首先,你需要安装requests库。在终端中运行以下命令:

pip install requests

接下来,你可以使用以下代码获取外网IP:

import requests

response = requests.get('https://api.ipify.org?format=json')
ip = response.json()['ip']
print(ip)

上述代码发送了一个GET请求到https://api.ipify.org?format=json,并解析返回的JSON数据,提取出IP地址。

方法二:解析网页内容

另一种获取外网IP的方法是解析一个显示本机IP的网页内容。一个常用的网页是http://ipinfo.io。你可以使用Python的requests库发送HTTP请求,并使用beautifulsoup4库解析HTML内容。

首先,你需要安装beautifulsoup4库。在终端中运行以下命令:

pip install beautifulsoup4

接下来,你可以使用以下代码获取外网IP:

import requests
from bs4 import BeautifulSoup

response = requests.get('http://ipinfo.io')
soup = BeautifulSoup(response.text, 'html.parser')
ip = soup.find('span', class_='ip').text
print(ip)

上述代码发送了一个GET请求到http://ipinfo.io,并使用beautifulsoup4库解析返回的HTML内容。然后,通过查找<span>标签中class属性为ip的元素,提取出IP地址。

这两种方法都可以用来获取本机的外网IP。你可以根据自己的需求选择其中一种方法来使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python获取本机外网ip的方法 - Python技术站

(0)
上一篇 2023年7月31日
下一篇 2023年7月31日

相关文章

  • 基于C++类型重定义的使用详解

    我来详细讲解一下关于“基于C++类型重定义的使用详解”的完整攻略。 C++类型重定义简介 C++中的类型重定义(Type Redefinition),是指将一个已经存在的类型重新定义,使其在某些方面上有所变更,比如增加一些成员,或者修改一些成员的类型等。在程序开发中,类型重定义是一种常见的技术手段,它可以提高程序的可读性、可维护性和可扩展性,还可以减少代码的…

    other 2023年6月26日
    00
  • 在python中将list转换为string

    在Python中,将list转换为string是一个常见的操作。本攻略将介绍如何使用Python内置的方法将list转换为string,包括join()和str()方法。 1. 使用join()方法 join()方法是Python中将list转换为string的最常用方法之一。它将list中的元素连接成一个字符串,并返回该字符串。以下是一个示例: my_li…

    other 2023年5月7日
    00
  • latex怎么自适应表格宽度

    在LaTeX中,可以使用tabularx宏包来实现自适应表格宽度。以下是使用tabularx宏包的详细说明: 基本用法 要使用tabularx宏包,需要在导言区中添加以下代码: latex \usepackage{tabularx} 然后,可以使用tabularx环境来创建自适应表格。以下是一个基本的示例: latex \begin{tabularx}{\t…

    other 2023年5月7日
    00
  • Linux find常用用法示例

    Linux find常用用法示例 find命令是Linux中常用的一种查找文件的命令,可以通过文件名、文件类型、文件大小、用户和组等多种方式来查找文件。接下来将介绍find命令的常用用法,以及一些具体的例子。 命令格式 find命令的基本格式为: find [起始目录] [参数] [匹配表达式] 其中,起始目录表示查找的起始路径,如果不指定则默认从当前目录开…

    其他 2023年3月28日
    00
  • U盘文件系统显示未知属性为0甚至无法格式化的紧急修复方法

    针对 U 盘文件系统显示未知属性为 0,甚至无法格式化的情况,以下是详细的修复方法: 步骤1:使用命令检测和修复U盘问题 将U盘插入电脑,并打开命令提示符(管理员身份) 输入以下命令:chkdsk G: /f /r /x(其中 G 为你的 U 盘盘符,可以替换成其他字母) 回车后,系统会开始扫描并修复 U 盘问题,需要等待一段时间直至完成 完成后,输入 ex…

    other 2023年6月27日
    00
  • C++ 静态成员的类内初始化详解及实例代码

    如题所述,本文将详细讲解关于C++中静态成员的类内初始化的整个流程。在本文的实现过程中,我们将会提供两个示例来帮助读者更好的理解和掌握相关内容。 一、静态成员变量概述 在开始讲解静态成员的类内初始化之前,我们先来了解一下静态成员变量的概念。静态成员变量是属于所有类的实例共享的,不同的对象可以访问相同的静态成员变量,同时,静态成员变量声明时不需要在类外部再进行…

    other 2023年6月20日
    00
  • Android SlidingDrawer 抽屉效果的实现

    Android SlidingDrawer 抽屉效果的实现攻略 Android SlidingDrawer 是一个可以实现抽屉效果的控件,可以在屏幕上显示一个抽屉,用户可以通过滑动来打开或关闭抽屉。下面是一个详细的攻略,包含了实现抽屉效果的步骤和两个示例说明。 步骤 在 XML 布局文件中定义 SlidingDrawer 控件。例如: <Sliding…

    other 2023年8月25日
    00
  • circle是什么意思

    在计算机领域,circle(圆)通常指代一个图形或者编程中的一个对象,该对象以一定半径和颜色进行描述。下面我将提供两个示例,为您进一步解释circle的含义。 示例一:circle作为HTML和CSS中的图形 在 HTML 和 CSS 开发中,<circle> 标签定义一个圆,是 SVG (可缩放矢量图形) 的一部分。 以下是一个示例代码: &l…

    其他 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部