110分钟使用Python搭建自己的IP定位查询接口
时间:2022-07-26
本文章向大家介绍110分钟使用Python搭建自己的IP定位查询接口,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
背景
近期公司对用户定位这块提了需要ip定位的需求,找了半天资料,发现了这个超级好用的python库,基于纯真网络dat数据,ip地址库和查询全都已经封装好了,使用库10分钟搞定,美滋滋。话不多说,开整!
上代码
说明
- 项目基于PYTHON3环境,接口端口号为8889。
- 项目使用qqwry库和flask轻量级接口框架。
qqwry_update.py 地址库更新工具类
from qqwry import updateQQwry
# 更新数据
ret = updateQQwry('ip.dat')
print(ret)
qqwry_ip.py 定位接口
import json
from qqwry import QQwry
import flask
from flask import request
server = flask.Flask(__name__)
wry = QQwry()
wry.load_file('ip.dat')
@server.route("/ip", methods=['get'])
def location():
ip = request.args.get("ip")
info = wry.lookup(ip)
res = {'ip': ip, 'city': info[0], 'isp': info[1]}
print(res)
return json.dumps(res)
server.run(port=8889, debug=True)
请求示例
- 生信菜鸟团博客2周年精选文章集(4)NCBI数据库的几个探索
- PHP 的前世今生
- 【直播】我的基因组49:Y染色体的SNV不能用常规流程来找?
- 【直播】我的基因组46:SNV突变(96种)频谱的制作
- 深入剖析-Oracle索引分支块的结构
- 【直播】我的基因组48:我可能测了一个假的全基因组
- 【直播】我的基因组47:测序深度和GC含量的关系
- 【直播】我的基因组47:测序深度和GC含量的关系
- SNV突变(96种)频谱的制作
- Golang语言社区--go语言执行cmd命令关机、重启等
- 【直播】我的基因组 45:SNV突变(6种)频谱的制作
- 【直播】我的基因组 44:比对文件画profile和heatmap图
- 做过1000遍RNA-seq的老司机告诉你如何翻车
- 【直播】我的基因组 43:简单粗糙的WGS数据分析流程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 关于Web点击劫持的一些实例
- LeetCode 爬取官网所有题目和自己的最近题解
- 一张图实现3D人脸建模!这是中科院博士生入选ECCV的新研究 | 开源
- client-go 之 DeltaFIFO 实现原理
- KEDA-Kubernetes 中基于事件驱动的自动伸缩
- 更新 Kubernetes APIServer 证书
- 0810-5.15.1-Impala执行invalidate metadata异常分析
- 笔记日记debug,推荐这个插件里的模板
- 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
- sklearn 模型的保存与加载
- R:如何使用RMarkdown渲染中文pdf报告
- 图解 SQL,这也太形象了吧!
- 用python爬取前程无忧网,看看我们是否真的“前程无忧”?
- 超硬核的 Python 数据可视化教程!
- Spark Core项目实战 | Top10 热门品类