Python通过ip2region解析IP获得地域信息
Python通过ip2region解析IP获得地域信息
目标,从给的读取给的ip地址文件解析出ip地域名并输出CSV文件,我选用的是开源ip2region。ip2region地址
下载好后直接用pycharm打开,因为我用的是python所以其他语言我就忽略了。这里我对代码进行了编辑从而实现自己的目的。
主要对benchmark.py进行了修改。代码如下
import threading
import time, sysfrom ip2Region import Ip2Regionclass BenchmarkThread(threading.Thread):__searcher = None__lock = Nonedef __init__(self, searcher, lock):self.__searcher = searcherself.__lock = lockthreading.Thread.__init__(self)def run(self):#输入路径,每行为一个IP地址for IP in open("D:\****\****.txt"):self.__lock.acquire()try:data = self.__searcher.memorySearch(IP)region=str(data["region"].decode('utf-8'))#print(region.split("|"))city=""province=""regions=region.split("|")if(regions[3]=="0"):city=""else:city=regions[3]if (regions[2] == "0"):province = ""else:province = regions[2]
print(IP.strip()+","+regions[0]+province+city+regions[4])result=IP.strip()+","+regions[0]+province+city+" "+regions[4]with open('*****.csv', 'a') as f: # 设置文件对象f.write(result+"\n")finally:self.__lock.release()if __name__ == "__main__":dbFile = "D:\pythonProject\hx_hdfs_local\ip2region-master\data\ip2region.db"if ( len(sys.argv) > 2 ):dbFile = sys.argv[1];threads = []searcher = Ip2Region(dbFile)lock = threading.Lock()for i in range(1):t = BenchmarkThread(searcher, lock)threads.append(t)sTime = time.time() * 1for t in threads:t.start()for t in threads:t.join()eTime = time.time() * 1#print("Benchmark done: %5f" % (eTime - sTime))
结果对比:
Python通过ip2region解析IP获得地域信息相关推荐
- 线上环境ip2region解析ip归属地不对以及searcher.btreeSearch报空指针的两个问题探究
今天在做系统日志的功能时,需要根据ip获取客户端的归属地,于是决定使用ip2region工具来实现,但是在实际使用过程中(使用场景见springboot+aop+线程池+ip2region+mybat ...
- php中获取ip的地域信息比较精准
这些是本人的劳动成果,放在这里一是作为备忘,二是共享给需要的朋友们.如果好用,就说声谢谢,我会很高兴的.如果不能用,请给我留言. /***功能:* 根据ip获得国家,省,城市,运营商*备注:* 利用的 ...
- python爬虫爬取ip记录网站信息并存入数据库
1 import requests 2 import re 3 import pymysql 4 #10页 仔细观察路由 5 db = pymysql.connect("localhost& ...
- python 本地解析IP地址所属地区信息
1.安装库 pip install geoip2 2.下载数据资源 https://dev.maxmind.com/geoip/geoip2/geolite2/ 我们可以选择CSV格式文件,也可以选择 ...
- python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息
python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: ...
- PHP调用外部服务获取IP地域信息实现信息的地域性关联
最近项目要求地域分布信息显示,就对IP及省市信息进行了下了解. 使用了如下2个方案来实现,用户周边信息的获取实现 1.使用了IP库,纯真IP库,可是数据库更新比较慢,文件庞大,相对所需要的资源占用较多 ...
- python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析
原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...
- java根据ip地址获取城市地域信息
java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?ip=123.139.9 ...
- Python通过GeoIP获取IP信息(国家、城市、经纬度等)
IP地址信息是非常重要的情报信息,通过IP可以定位到该IP所在的国家.城市.经纬度等. 获取IP信息的方式有很多,很多服务商都提供了相应的地址库或API接口服务. 如国内的ipip.net,国外的ip ...
最新文章
- 用python实现AES加密解密
- 使用python读取mysql数据库并进行数据的操作
- ubuntu下面的robo3t 使用笔记
- 关于国内部分电子病历编辑器的评价
- pcl里面的法线估计
- 分页缓冲池占用很高怎么解决_一次线上服务高 CPU 占用优化实践
- 两种思想实现基于jquery的延时导航菜单,可做延时触发器!
- rust笔记11 生命周期引用有效性
- 强化学习组队学习task03—— 策略梯度及 PPO 算法
- 内网神器cobaltstrike使用教程
- snapchat_如何在Snapchat快照中添加背景
- 支持国产自主可控OS——信创服务器操作系统的配置与管理 (统信UOS版)-新书发布
- java 为文件赋权,linux 系统给文件赋权命令大全
- 566页19万字区级一网通办政务服务应用平台建设项目方案书
- ISCC2018 Misc WriteUp
- .csd文件怎么读?--CMU_MOSI_Opinion_Labels.csd
- org.springframework.jdbc.BadSqlGrammarException: Error updating database
- 【软件推荐系列第 3 篇】如何下载、设置时钟屏保
- ddraw 的blt 方法
- Citrix XenDesktop 简介