通过访问特定的网址,可以获取本机所在网络的公网IP。

根据网址返回的信息结构,可以使用3种解析办法。

1,对于直接返回ip地址的

https://ident.me

https://ifconfig.me/ip

http://icanhazip.com

https://checkip.amazonaws.com

以上4个网址直接返回ip,可用如下示例代码获取公网ip

import requestsdef get_external_ip():try:ip = requests.get('https://ident.me').text.strip()return ipexcept:return None

2,对于返回json,ip地址为json中的一节点

http://jsonip.com/

http://ip.jsontest.com/

http://www.trackip.net/ip?json

以上3个网址返回的是json字符串,根据字符串内容,可用如下示例代码获取公网ip(假如json中ip节点存储有信息)

import requestsdef get_external_ip():try:ip = requests.get("http://jsonip.com/").json().get('ip')return ipexcept:return None

3,对于返回xml的

https://ip.tool.chinaz.com/

上面网址返回的xml文档,需要解析xml文档,找到对应节点获取ip地址,示例代码如下

import requests
from bs4 import BeautifulSoupdef get_external_ip():try:website = 'https://ip.tool.chinaz.com/'rsp = requests.get(url=website)soup = BeautifulSoup(rsp.text, 'lxml')ip = soup.find("dd", class_="fz24").get_text()return ipexcept:return None

第1、2方式获取ip地址是最简洁的。

【python编程】使用python获取机器所在网络的公网IP(第一种方法)相关推荐

  1. 【python编程】使用python获取机器所在网络的公网IP(第二种方法)

    上一篇文章讲解利用python中的requests模块获取公网IP.今天,我们换一种方法,使用curl命令来获取公网IP地址,将curl命令运行在subprocess中,提炼方法如下: import ...

  2. 站长在线经典Python题:使用Python编程思想解决鸡兔同笼的问题的4种方法

    欢迎你来到站长在线的Python题库,鸡兔写完Python教程以后,还是来一个Python的题目吧!想来想去,还是写一个经典的题目为好,作为本栏目的第一个题目.我就想到了比较热门的题目<鸡兔同笼 ...

  3. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  4. 基于jupyter notebook的python编程-----通过python编程实现RSSI测距定位技术仿真

    基于jupyter notebook的python编程-----通过python编程实现RSSI测距定位技术仿真目录 一.RSSI测距定位简介 1.什么是RSSI测距定位 2.RSSI测距定位优点 3 ...

  5. python快速编程入门黑马-新手如何快速入门Python编程?/开发python入门教程

    Python从入门到实践的教程是什么? 第一阶段Python与Linux数据这是Python的入段,也是帮助零基础学员打好基础的重要阶段,让零基础学员可以具备基础的编程能力,并掌握MySQL进阶内容. ...

  6. python字母表顺序函数_python获取字母在字母表对应位置的几种方法及性能对比较...

    python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...

  7. python字母对应序号_python获取字母在字母表对应位置的几种方法及性能对比较

    python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...

  8. python 运算符重载_Python 炫技操作:模块重载的五种方法

    点击上方"Python编程时光",选择"加为星标"第一时间关注Python技术干货!明哥原创的200页<PyCharm 中文指南> 震撼发布 系列文 ...

  9. Python 炫技操作(九):调用函数的九种方法

    系列导读 Python 炫技操作(一):条件语句的七种写法 Python 炫技操作(二):合并字典的七种方法 Python 炫技操作(三):判断是否包含子串的七种方法 Python 炫技操作(四):连 ...

最新文章

  1. 「斐波那契」投稿法不好使了:IJCAI 2020出台新规,隐瞒「拒稿重投」者将被一票否决...
  2. 在JavaScript函数中定义全局变量
  3. iis mysql php 附件上传大小_修改上传附件2M大小限制的方法/php+iis上传附件默认大小修改方法...
  4. PyCharm——导入模块时提示Unresolved Reference解决方案
  5. python去停用词用nltk_【NLTK】安装和使用NLTK分词和去停词
  6. Redux 主要知识学习总结
  7. Docker : Docker创建自定义网桥
  8. Java新职篇:什么是键入程序
  9. You have not concluded your merge (MERGE_HEAD exists) git拉取失败
  10. 计算机科学导论填空题,计算机科学导论习题
  11. python实现DDA算法
  12. 什么是servlet?servlet有什么用?
  13. Sftp中文件名乱码
  14. 创科视觉软件说明书_机器视觉入门指南
  15. Aqua Comms携手Ciena 测试海底光缆网络150Gbps波长传输
  16. jetbrain秘密路径
  17. leetcode 5230 Check If It Is a Straight Line
  18. 哔哩哔哩2018校招前端笔试
  19. springboot+vue+Elementui农家乐管理系统-住宿-美食-活动
  20. 计算机软考答题卡填涂格式,全国计算机软考网络工程师填涂答题卡须知

热门文章

  1. Android多媒体支撑库OpenCore视频硬件加速
  2. 摩尔斯电码转换python编码_python-摩尔斯电码查询器
  3. 鲁迅的故乡与我的故乡 IT版
  4. 容器监控之cadvisor介绍
  5. Python输出绝对值
  6. 【设计模式】之单例模式中的饿汉模式和懒汉模式
  7. java初级程序员简历上不能写,但是不能不会的项目!
  8. 我为什么要找河南女人做老婆
  9. Redis官方文档(入门必备)
  10. 如何将知网下载的caj文件转换为pdf文件