转自:http://blog.csdn.net/JGood/article/details/6284866

项目中有这样的需求,通过IP地址判断客户端是网通的还是电信的。从同事那拿了个纯文本的IP纯真数据库,用Python写了一个小程序,感觉挺好的。点击这里 查看例子。

源码下载

[python] view plaincopy
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from bisect import bisect
  4. _LIST1, _LIST2 = [], []
  5. _INIT = False
  6. ip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b, [int(i) for i in ip_str.split('.')])
  7. def _init():
  8. global _LIST, _INIT
  9. if not _INIT:
  10. for l in open('ipdata.txt', 'rb'):
  11. ip1, ip2 = l.split()[:2]
  12. addr = ' '.join(l.split()[2:])
  13. ip1, ip2 = ip2int(ip1), ip2int(ip2)
  14. _LIST1.append(ip1)
  15. _LIST2.append((ip1, ip2, addr))
  16. _INIT = True
  17. def ip_from(ip):
  18. _init()
  19. i = ip2int(ip)
  20. idx = bisect(_LIST1, i)
  21. assert(idx > 0)
  22. if len(_LIST1) <= idx:
  23. return u'unknown ip address %s' % ip
  24. else:
  25. frm, to ,addr = _LIST2[idx - 1]
  26. if frm <= i <= to:
  27. return addr
  28. else:
  29. return u'unknown ip address %s' % ip
  30. if __name__ == '__main__':
  31. print ip_from('115.238.54.106')
  32. print ip_from('220.181.29.160')
  33. print ip_from('115.238.54.107')
  34. print ip_from('8.8.8.8')

上面是针对的文件文件,下面是一篇关于二进制文件的处理方法:

转自:http://linuxtoy.org/archives/python-ip.html

使用Python查询纯真IP(最新修改,无乱码)

纯真IP挺全,IP数据库也是中文的,最近由于把一个服务器放到公网上,老是有一堆人用ssh暴力破解,用 DenyHosts 禁止暴力破解之余,还想看看到底这些 IP 是 哪里的(不过基本上都是代理 ^_^),就找了一个纯真IP的查询脚本。

纯真IP的格式详解

在网上找到一个 Python 脚本,修改后在linux下的 UTF-8 环境正常使用了,添加一些注释,使用的时候下载最新的纯真IP库,解压后把 QQWry.Dat 文件放到下面脚本同一个目录下。使用”./脚本名字.py IP地址"就可以查询了:

感谢 Xu Xiaodong 的帮助,脚本放在这里。如果有什么我能帮到的问题,可以email我。

Python 查询纯真IP库

我在 DenyHosts 禁止的IP查询示例:

for i in `sed -e '/^ALL/!d' /etc/hosts.deny |cut -d' ' -f2`; do /root/查询纯真IP.py $i;done
122.224.7.146 浙江省绍兴市/电信
89.163.144.165 俄罗斯/
211.174.187.161 韩国/首尔
59.166.120.184 日本/ATHOME网络
147.231.70.91 捷克/
85.28.26.66 英国/伦敦大学皇家医学院皇家法医实验鉴定中心
218.239.223.77 韩国/
216.146.47.37 美国/加拿大/未知
122.155.0.62 泰国/ CZ88.NET
69.31.5.120 美国/
75.109.170.56 美国/
69.43.142.150 美国/
59.109.6.83 北京市/方正宽带
125.46.248.158 河南省郑州市/网通
201.17.35.128 巴西/圣保罗
212.175.84.152 土耳其/
219.134.242.67 广东省深圳市/电信ADSL
213.228.142.42 葡萄牙/
85.17.182.198 荷兰/阿姆斯特丹Leaseweb IDC
218.77.129.6 海南省/
61.151.248.152 上海市/电信
210.210.18.218 印度/ CZ88.NET
194.171.247.21 荷兰/
59.57.251.57 福建省厦门市/电信
218.56.61.114 山东省济南市/网通
220.130.208.19 台湾省台北市/中华电信数据通信分公司
201.63.218.70 美国/中部/南部(IANA)
118.102.25.161 北京市/光环恒通数字技术

python访问纯真IP数据库相关推荐

  1. Python3访问纯真IP数据库的代码

    工作中我们常需要使用纯真IP数据库内的数据做分析,如何使用Python3访问读取纯真IP数据库的方法有很多朋友需要.今天在网上找了一个,分享一下.虽然不知道该代码的作者是谁,顺便感谢一下~~~ #! ...

  2. java读取纯真IP数据库qqwry.dat的源代码

    java读取纯真IP数据库QQwry.dat的源代码,要运行此程序必须有 到网上下载QQwry.dat,下载地址 http://www.cz88.net/down/   由于太大,我这里就不提供了. ...

  3. 纯真IP数据库的应用!

    前一段时间做了一个 利用纯真IP数据库,根据IP显示地址,并利用google获取地址经纬度,用google maps api 在网页显示IP来源的程序! 1.下载了纯真IP数据库,加压为txt文件后, ...

  4. 读取纯真IP数据库的公用组件QQWry.NET

    这是一个读取纯真IP数据库的公用组件接口,我是通过luma的<纯真IP数据库格式详解>了解了纯真IP数据库数据格式,并且基于网络上的一个IPLocation.dll源码的基础改编而来.我为 ...

  5. 纯真IP数据库格式详解

    摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上 找到了一份文档,得以了解其内幕,不过那份文档寥寥 ...

  6. php 读取纯真书库,PHP读取纯真IP数据库的函数

    PHP读取纯真IP数据库的函数,以下代码提取自Discuz! X2 $tinyipfile Discuz! 独有高压缩比算法和快速检索的IP数据库路径 下载地址:http://www.discuz.n ...

  7. 纯真IP数据库格式详解zt

    摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其内幕,不过那份文档寥寥数 ...

  8. 基于 cz88 纯真IP数据库开发的 IP 解析服务 - 支持 http 协议请求或 rpc 协议请求,也支持第三方包的方式引入直接使用

    cz88 基于 cz88 纯真IP数据库开发的 IP 解析服务 - 支持 http 协议请求或 rpc 协议请求,也支持第三方包的方式引入直接使用 Go 语言编写 进程内缓存结果,重复的 ip 查询响 ...

  9. php获取ip 然后返回地址,PHP调用纯真IP数据库返回具体地址的方法

    我们在日常开发中友很多场景需要显示具体的IP地址,如果调用本地的IP的地址库,这就需要考虑IP地址库数据量的问题,所以我们一般会采用在线的IP地址查询,今天就把PHP如何调用本地的纯真IP地址数据的教 ...

  10. PHP调用纯真IP数据库返回具体地址

    本文主要是说PHP如何使用纯真IP数据库 我提供一个方法给大家 function convertip($ip) { $ip1num = 0;$ip2num = 0;$ipAddr1 ="&q ...

最新文章

  1. SQL server management 查询所有触发器
  2. 用shell或者python写出各种图形
  3. potainer 日志_日志系统落地:制定日志规范
  4. 算法分析之对问题建模
  5. @Scheduled不执行的原因
  6. ###Tomcat目录介绍和基础
  7. linux 在ftp gt 下登录,cutftp显示的是啥意思?
  8. 如何根据关键字批量获取淘宝联盟中的商品图片
  9. 北斗卫星导航系统介绍
  10. NYOJ-234-DP(吃土豆)
  11. bellman ford java_Bellman-Ford算法
  12. A14:Untiy+Leapmotion制作拍打乐符游戏
  13. 算法 - 递归实现汉诺塔(The Tower of Hanoi)
  14. 北京队“接触风波”受罚背后:CBA职业化不断进步
  15. openmeetings(八)
  16. [视觉实战案例]Qt下BYTE、QImage、HObject、Mat等图像格式的转换和图像显示方法
  17. 两种链表的实现以及例题思路分享
  18. 提高QPS方法基本思路
  19. 附近的人打招呼V1.0
  20. Ubuntu22.04 VMWare Kernel Module Updater 失败

热门文章

  1. html中的日期框怎么写,HTML5日期输入框(date)
  2. access h3c交换机光口_h3c交换机端口配置命令行
  3. 常见算法的英文命名(排序、查找)
  4. Java之力[从蛮荒到撬动地球]之设计模式
  5. 轻松学网络设备之思科交换机搭建虚拟局域网
  6. CreatePipe、CreateProcess函数
  7. SAS数据分析之聚类分析
  8. U8v10.1 出纳票据打印在 Nantian PR2E上打印不正确问题的解决方法
  9. 区分 WDM驱动和NT驱动(有待继续思考)
  10. 无法启动WORKSTATION服务解决方案