Python访问纯真IP数据库脚本分享
作者:junjie 发布时间:2024-01-25 12:59:50
标签:Python,纯真IP,数据库
项目中有这样的需求,通过IP地址判断客户端是网通的还是电信的。从同事那拿了个纯文本的IP纯真数据库,用Python写了一个小程序,感觉挺好的。下面给出实现源码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bisect import bisect
_LIST1, _LIST2 = [], []
_INIT = False
ip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b, [int(i) for i in ip_str.split('.')])
def _init():
global _LIST, _INIT
if not _INIT:
for l in open('ipdata.txt', 'rb'):
ip1, ip2 = l.split()[:2]
addr = ' '.join(l.split()[2:])
ip1, ip2 = ip2int(ip1), ip2int(ip2)
_LIST1.append(ip1)
_LIST2.append((ip1, ip2, addr))
_INIT = True
def ip_from(ip):
_init()
i = ip2int(ip)
idx = bisect(_LIST1, i)
assert(idx > 0)
if len(_LIST1) <= idx:
return u'unknown ip address %s' % ip
else:
frm, to ,addr = _LIST2[idx - 1]
if frm <= i <= to:
return addr
else:
return u'unknown ip address %s' % ip
if __name__ == '__main__':
print ip_from('115.238.54.106')
print ip_from('220.181.29.160')
print ip_from('115.238.54.107')
print ip_from('8.8.8.8')


猜你喜欢
- 本文实例讲述了Python使用xlrd读取Excel格式文件的方法。分享给大家供大家参考。具体如下:使用xlrd能够很方便的读取excel文
- 突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存
- Image and text elements that appear in another element are called floa
- fromkeys()方法类似于列表的浅拷贝首先用该方法创建一个字典dict_ = dict.fromkeys(('a',
- 从windows操作系统本地读取csv文件报错data = pd.read_csv(path)Traceback (most recent
- 1.关系模型:用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。关系模型是由若干个关系模式组成的集合。2.关系模式:关系模
- 本文实例讲述了Python实现的爬虫刷回复功能。分享给大家供大家参考,具体如下:最近闲的无聊,就想着去看看爬虫,顺着爬虫顺利的做到了模拟登录
- JWT是一种JSON的行业标准,广泛应用在系统的用户认证方面。JWT认证简介JWT(JSON Web Tokens),是为了在网络应用环境间
- 更全面的实例,可以参考最常用的PHP正则表达式收集整理https://www.aspxhome.com/article/14049.htmp
- 1.主要功能如下:1.classification分类2.Regression回归3.Clustering聚类4.Dimensionalit
- 目录range函数zip() 函数其它内置函数数据类型转换相关内置函数变量相关函数数学相关函数进制相关函数高阶函数sorted(iterab
- 开发高质量软件的过程中,我们经常会为每个函数编写测试,这样在开发过程中运行这些测试的时候就比较方便,doctest是一个python标准库自
- (下面的代码原来我想用折叠的代码的,但是在google里面老是添加不了折叠的代码,所以就整屏的贴出来了,望大家不要见外。) 朋友的比较好的存
- 用户习惯大家都经常在提,习惯源于何出?回答可以是软件的用户习惯源于其不断使用过程中的印象积累。如果是这个软件刚诞生的时候呢?于是就得参考同类
- 需求描述在利用numpy进行数据分析时,常有的一个需求是:根据已知的数组生成新数组。这个问题又可以分为两类:根据筛选条件生成子数组;根据变换
- 在学习asyncio之前,先理清楚同步/异步的概念:同步是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执
- 之前在网上看过好多关于mysql.sock不见的问题,并没有关注这个东西存在的意义,直到自己的mysql也出现了相同的问题。让人纠结了一把…
- 本文实例讲述了python实现简单ftp客户端的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/python# -*-
- 背景 在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hi
- python的应用实践zipkin,需要py_zipkin,使用pip进行安装py_zipkin的时候出现问题, 根据stackoverfl