千家信息网

python3怎么实现简单的ip提取功能

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"python3怎么实现简单的ip提取功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python3怎么实现简单的ip提取功能"吧
千家信息网最后更新 2026年10月31日python3怎么实现简单的ip提取功能

这篇文章主要讲解了"python3怎么实现简单的ip提取功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python3怎么实现简单的ip提取功能"吧!

准备环境python3,win10系统,当然linux更好,win下需要安装reuqests模块(调用第三方接口进行ip归属地查询需要发起请求)

\Users\\Desktop>pip install requestsCollecting requests  Downloading requests-.-py2.py3-none-any.whl (kB)%  kB kB/sCollecting chardet<.,>=. (from requests)  Downloading chardet-.-py2.py3-none-any.whl (kB)%  kB kB/sCollecting idna<,>= (from requests)  Downloading idna--py2.py3-none-any.whl (kB)%  kB MB/sCollecting urllib3<,>=. (from requests)  Downloading urllib3--py2.py3-none-any.whl (kB)%  kB kB/sCollecting certifi>=. (from requests)  Downloading certifi-.-py2.py3-none-any.whl (kB)%  kB MB/sInstalling collected  chardet, idna, urllib3, certifi, requestsSuccessfully installed certifi-. chardet-. idna- requests-. urllib3-

我这里调用阿里的第三方接口进行IP归属地查询,接口地址http://ip.taobao.com/instructions.php

接口描述
1. 请求接口(GET):/service/getIpInfo.php?ip=[ip地址字串]2. 响应信息:(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商3. 返回数据格式:{:0,:{:,:,:,:,:,:,:,:,:,:,:,:,:}}其中code的值的含义为,0:成功,1:失败。

这里大概介绍一下思路,读取文件,定义函数,进行循环,发起请求,接收参数,判断,筛选并写入文件,完成。

运行python文件先写头文件格式,告诉系统运行python3的代码,并且以utf-8编码

#!usr/bin/python3
#-*-coding:utf-8-*-
 requests
 requests requests    URL =  + ip    r = requests.get(,timeout=)     print() ip = checkip(ip)

运行代码结果如下,初步判断代码应该没问题

C:\Users\92039\Desktop>python 2.py
test

 requests    URL =  + ip    r = requests.get(,timeout=)    print() ip = checkip(ip)
 requests    URL =  + ip    r = requests.get(,timeout=)    json_data = r.json()     region = json_data[][]     print()  ip = checkip(ip)

region = json_data[u'data'][u'region']

此处代码是按照接口返回的json的格式来写的

 requests    URL =  + ip    r = requests.get(,timeout=)    json_data = r.json()    region = json_data[][]    print(region)  ip = checkip(ip)

C:\Users\92039\Desktop>python 2.py
山西省

测试成功

即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。大多数的异常都不会被程序处理,而是以错误形式展现

这时候就要进行异常处理

引入try/except

:        x = / ZeroDivisionError  err:        print(, err)yichang()

C:\Users\92039\Desktop>python 5.py
异常: division by zero

如果未做异常处理将直接报错,导致程序无法继续执行部

 requests:        URL =  + ip        r = requests.get(URL,timeout=)        json_data = r.json()        region = json_data[][]        print(region):ip = checkip(ip)

C:\Users\92039\Desktop>python 2.py

山西省

接下来加入if判断

 requests:        URL =  + ip        r = requests.get(URL,timeout=)        json_data = r.json()        region = json_data[][] region == :::ip = checkip(ip)

然后需要加入打开文件部分的代码

当做文件处理时,需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。

file = open()data = file.read()file.close()

这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理

然而with可以很好的处理上下文环境产生的异常

= f.read()


 open()  f:           ips = f.read().split()    ip  ips:                       print(ip)

ips.txt中写入了3个ip

222.31.41.253 #山西省202.12.15.52  #日本61.135.169.12 #北京


运行结果

C:\Users\92039\Desktop>python 3.py

222.31.41.253
202.12.15.52
61.135.169.121

将该模块加入到代码中

 requests:        URL =  + ip        r = requests.get(URL,timeout=)        json_data = r.json()        region = json_data[][] region == :            print(ip):: open()  f:    ips = f.read().split() ip  ips:        print(ip)        checkip(ip)

C:\Users\92039\Desktop>python 2.py
222.31.41.253
222.31.41.253
202.12.15.52
61.135.169.121

因为有两次输出,属于山西省的ip会打印两次,由运行结果可知只有第一个ip属于山西省

接下来要加入写入文件的模块,将属于山西省的ip全部写入一个文件

 open(,)  fw:    i  range():        fw.write()
原有数据1234

运行脚本后

1
2
3
4
a
a
a
a
a

补充一下文件操作的知识
文件打开模式
  • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】

  • w,只写模式【不可读;不存在则创建;存在则清空内容】

  • x, 只写模式【不可读;不存在则创建,存在则报错】

  • a, 追加模式【可读; 不存在则创建;存在则只追加内容】,文件指针自动移到文件尾。

"+" 表示可以同时读写某个文件
  • r+, 读写【可读,可写】

  • w+,写读【可读,可写】,消除文件内容,然后以读写方式打开文件。

  • x+ ,写读【可读,可写】

  • a+, 写读【可读,可写】,以读写方式打开文件,并把文件指针移到文件尾。

"b"表示以字节的方式操作,以二进制模式打开文件,而不是以文本模式。
  • rb 或 r+b

  • wb 或 w+b

  • xb 或 w+b

  • ab 或 a+b

    注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

将写入文件的2行代码加入

 requests:        URL =  + ip        r = requests.get(URL,timeout=)        json_data = r.json()        region = json_data[][] region == : open(,)  fw:                fw.write( + ip):: open()  f:           ips = f.read().split() ip  ips:        checkip(ip)

运行脚本

:\\92039\> 2

会在桌面创建一个a.txt文档,结果为

222.31.41.253

感谢各位的阅读,以上就是"python3怎么实现简单的ip提取功能"的内容了,经过本文的学习后,相信大家对python3怎么实现简单的ip提取功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 模式 运行 代码 内容 接口 山西 山西省 处理 功能 数据 方式 格式 结果 句柄 字节 模块 程序 错误 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技平台互联网 厦门中拓互联网络科技有限公司 河南真二互联网科技有限公司 互联网扶贫科技 平安科技 互联网 世界互联网领先科技成果 贷财互联网科技 广州互联网络科技有限公司 猫创互联网科技 新华互联网科技2019 创业天下互联网科技有限公司 昊天互联网科技有限公司 杭州壁岐互联网科技有限公司 互联网科技扶贫时间 互联网企业科技类企业如何做账 互联网科技新闻 玉溪新华互联网科技怎么选 绵阳真晨互联网科技有限公司 深圳互联网科技园地址 山东蛋芒互联网科技有限公司 金融科技创新监管互联网金融 卓越科技(互联网 ) 老年人脱离互联网科技的作文 互联网科技革命什么开始 互联网科技公司有风险吗 健康食品互联网创新科技园项目 互联网行业科技股 工业互联网等科技实现智能化赋能 互联网科技手抄报图片 互联网科技快速发展优美句子
0