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日

相关文章

  • js学习笔记(延时器)

    以下是关于“JS学习笔记(延时器)”的完整攻略,包括基本概念、步骤和两个示例。 基本概念 在JavaScript中,延时器是一种用于在指定时间后执行代码的机制。延器可以用于实现定时任务、动画效果、用户交互等功能。 步骤 以下是使用JavaScript延时器的步骤: 使用setTimeout()函数:setTimeout()函数是JavaScript中的内置函…

    other 2023年5月7日
    00
  • s3clientaws

    以下是关于“s3clientaws”的完整攻略: 什么是s3clientaws s3clientaws是一个用于访问Amazon S3服务的AWS SDK for JavaScript的客户端。它提供了一组API,可以让开发者在中方便地访问Amazon S3服务,包括上传、下载、删除、复制等操作。 s3clientaws的安装和配置 可以通过npm安装s3c…

    other 2023年5月7日
    00
  • Android4.4 访问外部存储详解及实例

    Android4.4 访问外部存储详解及实例 在Android 4.4及以上的版本中,访问外部存储需要进行特殊处理。以下是详细的步骤: 在AndroidManifest.xml文件中添加权限声明: xml <uses-permission android:name=\”android.permission.WRITE_EXTERNAL_STORAGE\…

    other 2023年10月13日
    00
  • putty使用密钥登陆OpenSSH配置方法(图文详解)

    下面是“putty使用密钥登陆OpenSSH配置方法(图文详解)”的完整攻略: 1.前提条件 在进行putty使用密钥登陆OpenSSH配置之前,需要满足以下条件: 已安装OpenSSH服务器和客户端 已安装Putty软件 已生成SSH密钥对 2.生成SSH密钥对 在Linux服务器上生成SSH密钥对的步骤如下: # 执行以下命令,生成密钥对 ssh-key…

    other 2023年6月27日
    00
  • EasyC++全局变量

    EasyC++全局变量攻略 在EasyC++中,全局变量是在程序的任何地方都可以访问的变量。它们在整个程序中都是可见的,因此可以在不同的函数中共享数据。下面是关于EasyC++全局变量的详细攻略。 声明全局变量 要声明一个全局变量,只需在所有函数之外的任何地方进行声明。通常,全局变量的声明放在文件的顶部,以便于其他函数访问。 // 全局变量声明 int gl…

    other 2023年7月28日
    00
  • C++中队列queue的用法实例详解

    C++中队列queue的用法实例详解 什么是队列 队列是一种线性数据结构,具有“先进先出”的特点。队列只允许在队尾插入元素,在队头删除元素。队列的常见操作包括入队(enqueue)、出队(dequeue)、获取队头元素(front)和获取队尾元素(back)。队列的实现可以使用数组或链表等数据结构。 C++中队列queue的使用 在C++ STL中,队列(q…

    other 2023年6月27日
    00
  • html5video视频标签全属性详解

    HTML5 Video 视频标签全属性详解 HTML5 视频标签 <video> 是用于在网页上嵌入视频的标准标签。它提供了很多属性,使得我们能够对视频的播放、尺寸、样式等进行控制。本篇文章将会详细介绍 <video> 标签的所有属性及其用法。 基本属性 src:视频文件的 URL 地址。 controls:显示播放器控件,包括播放/…

    其他 2023年3月29日
    00
  • Spring Cloud微服务(一):公共模块的搭建

    Spring Cloud微服务(一):公共模块的搭建 前言 随着微服务架构在企业中的普及,一些公共的组件和库的使用变得越来越重要。本文将介绍如何在Spring Cloud微服务架构下构建公共模块。 模块的创建 我们可以在单独的一个Spring Boot项目中创建公共模块。使用Maven来管理依赖,确保依赖的唯一性,从而避免出现兼容性问题。 创建Maven项目…

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