IP解析
import sys,re
ip_1_stat = {}
source_fp = open("ip_region","r")
p = re.compile("(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})")
for line in source_fp:
line = line.strip()
list = line.split('|')
start = p.match(list[0].strip())
end = p.match(list[1].strip()[:-3])
region = list[2].strip()
if start and end:
key = start.group(1)
if key not in ip_1_stat:
ip_1_stat[key] = {"line":{}}
if line not in ip_1_stat[key]["line"]:
ip_1_stat[key]["line"][line] = {"s2":int(start.group(2)), "s3":int(start.group(3)), "s4":int(start.group(4)), "e2":int(end.group(2)), "e3":int(end.group(3)), "e4":int(end.group(4)), "prov":region}
source_fp.close()
#ip index
index = sys.argv[1]
for line in sys.stdin:
line = line.strip()
list = line.split('\t')
ip = list[index].strip()
#ip = list[2].strip()
match = p.match(ip)
i1 = match.group(1)
i2 = int(match.group(2))
i3 = int(match.group(3))
i4 = int(match.group(4))
prov = "NotFound"
key = i1
if key not in ip_1_stat:
continue
flag = 0
#ergodic
for l in ip_1_stat[key]["line"]:
#start
if i2 > ip_1_stat[key]["line"][l]["s2"]:
flag = 1
elif i2 == ip_1_stat[key]["line"][l]["s2"]:
if i3 > ip_1_stat[key]["line"][l]["s3"]:
flag = 1
elif i3 == ip_1_stat[key]["line"][l]["s3"]:
if i4 >= ip_1_stat[key]["line"][l]["s4"]:
flag = 1
#flag
if flag == 0:
continue
#end
if i2 < ip_1_stat[key]["line"][l]["e2"]:
flag = ip_1_stat[key]["line"][l]["prov"]
elif i2 == ip_1_stat[key]["line"][l]["e2"]:
if i3 < ip_1_stat[key]["line"][l]["e3"]:
flag = ip_1_stat[key]["line"][l]["prov"]
elif i3 == ip_1_stat[key]["line"][l]["e3"]:
if i4 <= ip_1_stat[key]["line"][l]["e4"]:
flag = ip_1_stat[key]["line"][l]["prov"]
if flag != 1:
break
print "%s\t%s" % (line, flag)
IP解析的更多相关文章
- IP工具类-自己动手做个ip解析器
IP工具类-自己动手做个ip解析器 一.资料准备 导入依赖包:
- dubbo注册服务IP解析异常及IP解析源码分析
在使用dubbo注册服务时会遇到IP解析错误导致无法正常访问. 比如: 本机设置的IP为172.16.11.111, 但实际解析出来的是180.20.174.11 这样就导致这个Service永远也无 ...
- 动态IP解析
本文介绍两种方便获取主机动态IP的方式(DDNS,IP报告网页),并给出相应的代码实现. shell脚本获取本机IP,执行上传操作和更新DNS操作.定期执行通过crontab或者systemd等服务. ...
- github开源的一些ip解析 ,运营商信息,经纬度 地址 后续开发使用
https://github.com/wzhe06/ipdatabase ip解析 https://github.com/flyaction/ipdatabase 比较新 https://githu ...
- 万网云解析全面升级开放,支持海外IP解析!
基于万网过去18年来的专业域名解析服务经验,万网云解析新版实现了承载超过300万域名的全面升级,它是万网DNS域名解析系统的全新升级,目前已正式发布上线,详见万网首页:http://www.net.c ...
- 开发一个简单的ip解析webservice接口,并用springmvc生成客户端调用
1.创建webservice工程,这次先采用jax-ws框架,下次再尝试jax-rs(restful) 2.写个实现ip解析的类,接收传入的ip,并返回解析信息 3.Myeclipse——>Ne ...
- Hive UDF IP解析(二):使用geoip2数据库自定义UDF
开发中经常会碰到将IP转为地域的问题,所以以下记录Hive中自定义UDF来解析IP. 使用到的地域库位maxmind公司的geoIP2数据库,分为免费版GeoLite2-City.mmdb和收费版Ge ...
- 更新TP-LINK路由器的外网IP到花生壳动态IP解析
------------------------------------------------------------------------------- 以下内容可能还是存在问题,等之后有时间再 ...
- DNS寻址以及IP解析
域名解析从右向左 DNS寻址: 1 客户端发送查询请求,在本地计算机缓存查询,若没有找到,就会将请求发送给dns服务器 2 先发送给本地的dns服务器,现在自己的区域内查找,若找到,根据此记录进行查询 ...
- IP解析计算机名称
#-*- coding: UTF-8 -*- import subprocess,sys,threading reload(sys) sys.setdefaultencoding('utf-8') d ...
随机推荐
- [Angular] Difference between Providers and ViewProviders
For example we have a component: class TodoList { private todos: Todo[] = []; add(todo: Todo) {} rem ...
- tensorflow 函数接口的理解
1. tf.nn.softmax tf.nn.softmax(logits, dim=-1, name=None) w*x+b ⇒ logits softmax 函数执行的操作:exp(logits) ...
- 快速删除 jar 里面的 BuildConfig.class
快速删除 jar 里面的 BuildConfig.class 起因:多个 jar 包里面的 BuildConfig.class 文件导致编译冲突. 方法一:土方法 使用 jar 解包 jar xf x ...
- TensorFlow 实战(二)—— tf.train(优化算法)
Training | TensorFlow tf 下以大写字母开头的含义为名词的一般表示一个类(class) 1. 优化器(optimizer) 优化器的基类(Optimizer base class ...
- error: expected declaration or statement at end of input----solved
error: expected declaration or statement at end of input 解决方法: 1.程序缺少一个括号相应地 2.而不添加头文件 版权声明:本文博主原创文章 ...
- Chrome和FireFox中年份显示为113年的解决方法
下面是段简单的JS显示时间代码片段: <script language="javascript" type="text/javascript"> v ...
- 各个版本 Windows 10 系统中自带的 .NET Framework 版本
原文各个版本 Windows 10 系统中自带的 .NET Framework 版本 Windows 名称 Windows 版本 自带的 .NET Framework 版本 Windows 10 Oc ...
- 1.通过模板创建MAP版本项目
1.选择mpa+ef+module-zero 取名字 2.用vs打开项目后,在解决方案上右键 还原nuget包 3.打开程序包管理器控制台,选择以EntityFramework结尾的项目,并执行upd ...
- python3获取天气预报
#!/usr/local/bin/python3 #coding=utf-8 ''' Created on 2011-2-25 @author: http://www.cnblogs.com/txw1 ...
- SQL查询表结构 相关语句
--查看列注释select * from all_col_comments where table_name=upper('XXXXX')--查看表结构select * from user_tab_c ...