python调用ip查询接口

如何利用python调ip查询接口?

首先在http://www.ip138.com/上注册一个帐号(过程省略)

点击IP查询

token就是key了,还有其它的调用方法,这里只讲token这种调用

注册后好像免费只能查1000次(有需要可以自己买,貌似不贵)

有了这个key就可以调用接口了,代码如下

# coding: utf-8
__author__ = 'www.py3study.com'
import urllib.request
class ip_source_find(object):
    def __init__(self):
        self.sfile = r'C:\Users\9you\Desktop\ang_login_ip.log'  #源日志ip
        self.dfile = r'C:\Users\9you\Desktop\alive.txt'   #处理后的新文件
        self.aliveList = [] #临时的文件
        self.run()


    def run(self):
        with open(self.sfile, 'r') as fp:
            lines = fp.readlines()  # readlines 读取所有行
            for i in lines:
                ip = i.strip('\n')
                key = '77cc292f2f80124a1bfcb29802eb4ac' #自己的token
                URL = 'http://api.ip138.com/query/?ip=' + str(ip) + '&datatype=jsonp&callback=find&token=' + key
                response = urllib.request.urlopen(URL)
                html = response.read().decode("utf-8")
                print(html)
                new_ip = html.split(':')[2].split(',')[0]
                address = html.split(':')[-1].split('}')[0]
                new_content = new_ip + '\t' + address + '\n'
                self.aliveList.append(new_content)
                with open(self.dfile, 'w') as fp:
                    for i in range(len(self.aliveList)):
                        fp.write(self.aliveList[i])


if __name__ == '__main__':
    st = ip_source_find()

如果需要使用上面的脚本

需要注意的地方

源ip文件格式,只能是ip,不能有其它的任何东西

Linux下去过滤web的日志

cat access_201711160430.log | awk '{print $1}' | sort| uniq -u >> 2.txt

内容如下,只能是单纯的ip

注意脚本最上面源ip路径,和生成后新的ip路径,

windows下路径需要用反斜杠\

linux下路径用/

还有就是你自己的key,也就是注册帐号里面的token

最后还需要安装一个python3以上版本,我用的是py3的语法!

改完后,就可以运行脚本了,运行截图

最后生成文件截图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Django中文社区

简单全文搜索

搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 Django Model 层提供的一些内置方法来完成。现在我们来为我们的博客提供一个简单的搜索功能...

4576
来自专栏冷冷

微信JS-SDK 注入权限验证配置

wx.config({     debug: true, // 开启调试模式,建议开发时开启     appId: '${appId}',      //注意 ...

2596
来自专栏大数据杂谈

Windows下python2和3共存问题

在学习python的过程中,有人推荐2,也有人推荐3。但是,不管选择了哪一个版本,总是想着是否能2个版本同时安装并兼容使用呢? 真的可以吗? 答案是肯定的,完全...

2209
来自专栏耕耘实录

PHP学习笔记(3)--Mysql部分简单命令

782
来自专栏练小习的专栏

条件注释

下面是条件注释的语法 gt /Greater than/大于/<!--[if gt IE 5.5]> gte /Greater than or equal t...

18910
来自专栏IMWeb前端团队

Nodejs进阶:Express常用中间件body-parser实现解析

写在前面 body-parser是非常常用的一个express中间件,作用是对post请求的请求体进行解析。使用非常简单,以下两行代码已经覆盖了大部分的使用场景...

30110
来自专栏青青天空树

初识mfc

  今天主要了解了Visual C++的开发环境Visual Studio(话说以前都是用来调试控制台程序的)和用mfc写了一个最简单的程序。

1163
来自专栏我的博客

Mysql的控制台导入、导出

今天在往数据库里面导入.sql文件时,发现大的文件根本没办法直接导入的。通过百度,在网上找到了两种解决办法,现在和大家分享一下吧! 第一种: 一,修改PHPMy...

2935
来自专栏挖坑填坑

Angular中environments的神奇之处

例如: 比如environment.prod.ts对应的就是prod环境,你有多少个环境这里就新建多少个文件。(当然没有的就是默认的运行环境)

1722
来自专栏前端vue

基于CodeIgniter&Vue-cli构建前后端分离

这是正常CI给的初始页面,CI让我们更改welcome_message文件更换视图,具体方法在controllers/welcome中,但是我们并不需要,因为视...

8423

扫码关注云+社区

领取腾讯云代金券