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获得地域信息相关推荐

  1. 线上环境ip2region解析ip归属地不对以及searcher.btreeSearch报空指针的两个问题探究

    今天在做系统日志的功能时,需要根据ip获取客户端的归属地,于是决定使用ip2region工具来实现,但是在实际使用过程中(使用场景见springboot+aop+线程池+ip2region+mybat ...

  2. php中获取ip的地域信息比较精准

    这些是本人的劳动成果,放在这里一是作为备忘,二是共享给需要的朋友们.如果好用,就说声谢谢,我会很高兴的.如果不能用,请给我留言. /***功能:* 根据ip获得国家,省,城市,运营商*备注:* 利用的 ...

  3. python爬虫爬取ip记录网站信息并存入数据库

    1 import requests 2 import re 3 import pymysql 4 #10页 仔细观察路由 5 db = pymysql.connect("localhost& ...

  4. python 本地解析IP地址所属地区信息

    1.安装库 pip install geoip2 2.下载数据资源 https://dev.maxmind.com/geoip/geoip2/geolite2/ 我们可以选择CSV格式文件,也可以选择 ...

  5. python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息

    python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: ...

  6. PHP调用外部服务获取IP地域信息实现信息的地域性关联

    最近项目要求地域分布信息显示,就对IP及省市信息进行了下了解. 使用了如下2个方案来实现,用户周边信息的获取实现 1.使用了IP库,纯真IP库,可是数据库更新比较慢,文件庞大,相对所需要的资源占用较多 ...

  7. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析

    原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...

  8. java根据ip地址获取城市地域信息

    java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?ip=123.139.9 ...

  9. Python通过GeoIP获取IP信息(国家、城市、经纬度等)

    IP地址信息是非常重要的情报信息,通过IP可以定位到该IP所在的国家.城市.经纬度等. 获取IP信息的方式有很多,很多服务商都提供了相应的地址库或API接口服务. 如国内的ipip.net,国外的ip ...

最新文章

  1. 用python实现AES加密解密
  2. 使用python读取mysql数据库并进行数据的操作
  3. ubuntu下面的robo3t 使用笔记
  4. 关于国内部分电子病历编辑器的评价
  5. pcl里面的法线估计
  6. 分页缓冲池占用很高怎么解决_一次线上服务高 CPU 占用优化实践
  7. 两种思想实现基于jquery的延时导航菜单,可做延时触发器!
  8. rust笔记11 生命周期引用有效性
  9. 强化学习组队学习task03—— 策略梯度及 PPO 算法
  10. 内网神器cobaltstrike使用教程
  11. snapchat_如何在Snapchat快照中添加背景
  12. 支持国产自主可控OS——信创服务器操作系统的配置与管理 (统信UOS版)-新书发布
  13. java 为文件赋权,linux 系统给文件赋权命令大全
  14. 566页19万字区级一网通办政务服务应用平台建设项目方案书
  15. ISCC2018 Misc WriteUp
  16. .csd文件怎么读?--CMU_MOSI_Opinion_Labels.csd
  17. org.springframework.jdbc.BadSqlGrammarException: Error updating database
  18. 【软件推荐系列第 3 篇】如何下载、设置时钟屏保
  19. ddraw 的blt 方法
  20. Citrix XenDesktop 简介

热门文章

  1. usdt (节点自动归集)
  2. vscode配置html环境
  3. 精品丨CALCULATE函数进阶版知识
  4. mpython掌控板体温,基于Mpython平台验证水温的变化
  5. 会员管理系统实战开发教程(一)
  6. java学习记录16-反射
  7. 瑞萨单片机之外部中断实现频率采集(三)
  8. 如何使用FormatNumber函数
  9. 计算机房考研英语考试时间按,考研英语一考试时长是多久
  10. 【数据挖掘实验】聚类分析方法