python实现ip地址的包含关系判断】的更多相关文章

python的IPy模块虽然可以实现一些ip地址的判断,但是不是很完美,有些场景根本判断不出来,还会抛出异常,比如一个地址范围和一个ip/掩码,这种不同类型就无法判断. 对此通过自己写函数来实现ip地址的判断,实现的思路很简单,先把ip地址转换为一个十进制的范围数,然后来判断是否有包含关系. #下面函数可以将ip转换为十进制数def iptoint(self,ip): try: h=[] s = ip.split('.') for temp in s: a=bin(int(temp))[2:]…
python实现IP地址转换为32位二进制 #!/usr/bin/env python # -*- coding:utf-8 -*- class IpAddrConverter(object): def __init__(self, ip_addr): self.ip_addr = ip_addr @staticmethod def _get_bin(target): if not target.isdigit(): raise Exception('bad ip address') targe…
一:使用python对ip地址排序所用代码示例一: import socket iplist = ['10.5.11.1','192.168.1.33','10.5.2.4','10.5.1.3','10.5.11.13','10.5.11.12','10.5.1.1','10.5.1.2','10.5.1.11','10.5.1.13'] print(sorted(iplist,key=socket.inet_aton)) for i in sorted(iplist,key=socket.i…
一.使用淘宝IP地址库查询 使用淘宝的Rest API,可以快速查询IP地址的归属地: 图00-淘宝IP地址库RestAPI使用说明 图01-使用淘宝免费IP地址库-查询IP归属地 存在问题:淘宝的免费IP地址库,只能粗略地查询到IP地址所在的省.市和运营商,无法查询更加详细的信息,比如GEO经纬度坐标等. 二.使用ip-api提供的免费查询功能 ip-api可以提供更加详细的信息,但是查询结果是英文的.网址为:http://www.ip-api.com . 图:03-使用ip-api查询百度的…
<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是国外(脚本为了使国内用户快速下载,yum源自动设置成163,这个情况就需要获取网关地址):如果服务器有公网地址,这时获取的IP地址可用来直接判断服务器地理位置. 获取服务器IP,如果有公网地址就取公网地址,没有公网地址就取私网网址 下面是之前我用shell来获取本地IP脚本: IP=`\. | \. | \.…
python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单 将一个整数如2000000,变为一个IP地址的方式 >>> import socket >>> import struct >>> int_ip = 123456789 >>> ip = socket.inet_ntoa(struct.pack('I',socket.htonl(int_ip)))      #int to i…
一.自动动手,丰衣足食 #encoding=utf-8 import os,sys def check_ip(ipaddr): addr = ipaddr.strip().split('.') #切割IP地址为一个列表 #print addr if len(addr) != 4: #切割后列表必须有4个参数 print "check ip address failed1!" sys.exit() for i in range(4): try: addr[i]=int(addr[i])…
#!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 #writer by keery_log #Create time:2013-10-30 #Last update:2013-10-30 #用法: python chk_ip.py www.google.com |python chk_ip.py 8.8.8.8 |python chk_ip.py ip.txt import signal import urllib import j…
ip地址是用3个'.'号作为分隔符,分割4个数字,每个数字的取值在[0,255],一般日志文件中的ip地址都是有效的ip地址,不需要我们再去验证,因此,若从日志文件中提取ip,那么可以简单写成这样: >>> import re >>> s='kkk 192.168.1.136 kkk 192.168.1.137 kk 192.168.1.138 kk' >>> l=re.findall(r'\d+.\d+.\d+.\d+', s) >>&g…
IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-09-04 21:57:15 # @Author : EnderZhou (zptxwd@gmail.com) # @Link : http://www.cnblogs.com/enderzhou/ # @Version : $Id$ from IPy…
前言 想要批量将ip地址转换为省份城市.国家或是经纬度?百度上的批量查找每次的容量太小满足不了要求?第三方库神器 - geoip2帮你解决所有烦恼. 准备工作 首先安装一下geoip2库, pip install geoip2 前往官网下载一下数据包,下载地址https://dev.maxmind.com/geoip/geoip2/geolite2/ 将下载好的数据包放到程序的根目录下 完整代码 import geoip2.database def getLoc(ip): # 传入下载的数据的地…
来源:https://pypi.python.org/pypi/IPy IPy模块 该模块可以方便的处理IPv4和IPv6地址. 以下是从来源中拷贝的一些例子: >>> from IPy import IP>>> ip = IP('127.0.0.0/30')>>> for x in ip:... print(x)...127.0.0.0127.0.0.1127.0.0.2127.0.0.3>>> ip2 = IP('0x7f0000…
1.linux命令行版 #!/usr/bin/python #-*- coding: utf-8 -*- import json import urllib import sys def get_data(ip): API = "http://ip.taobao.com/service/getIpInfo.php?ip=" url = API + sys.argv[1] jsondata = json.loads(urllib.urlopen(url).read()) if jsond…
python 2.7 #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - # This program requires Python 2.7 or any later version import socket from binascii import hexlify def convert_ip4_address(): for ip_addr in ['127.0.0.1', '192.168.0.…
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import socket,fcntl,struct #crontab下shell命令无法执行 def getHostInfo(): # cmd = r"ifconfig|grep -v 127|grep 'inet addr' |awk '{print $2}'|cut -d : -f2" cmd = 'echo test' f = os.popen(cmd,'r') _i…
1.此api已经关闭 https://api.map.baidu.com/highacciploc/v1?qcip=220.181.38.113&ak=你申请的AK&extensions=1&coord=bd09ll 2.现在改成 API首页:http://lbsyun.baidu.com/index.php?title=webapi/ip-api使用方式:https://api.map.baidu.com/location/ip?ak=请输入您的AK&coor=bd09l…
p = re.compile("^((?:(2[0-4]\d)|(25[0-5])|([01]?\d\d?))\.){3}(?:(2[0-4]\d)|(255[0-5])|([01]?\d\d?))$")…
一,问题描述 给定100万个区间对,假设这些区间对是互不重叠的,如何判断某个数属于哪个区间? 首先需要对区间的特性进行分析:区间是不是有序的?有序是指:后一个区间的起始位置要大于前一个区间的终点位置.如:[0,10],[15,30],[47,89],[90,100]…..就是有序的区间[15,30],[0,10],[90,100],[47,89]……就是无序的区间 其次,区间是不是连续的?连续是指:后一个区间的起始位置 比 前一个区间的终点位置大1,连续的区间一定是有序的.如:[0,10],[1…
1.获取真正ip地址 function get_ip(){ //判断服务器是否允许$_SERVER if(isset($_SERVER)){ if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){ $realip = $_SERVER[HTTP_X_FORWARDED_FOR]; }elseif(isset($_SERVER[HTTP_CLIENT_IP])) { $realip = $_SERVER[HTTP_CLIENT_IP]; }else{ $realip…
题目: http://ac.jobdu.com/problem.php?pid=1203 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3052 解决:1504 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数.    接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a.b.c.d都是整数. 输出: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!…
时间限制:1秒  空间限制:32768K 题目描述 输入一个ip地址串,判断是否合法. 输入描述: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数. 接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a.b.c.d都是整数. 输出描述: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!",否则输出"No!". 合法的IP地址为: a.b.c.d都是0-255的整数. 输入例子: 2 2…
通常情况下第一时间会想到使用正则表达式去验证,但由于正则表达式过于复杂或者没有考虑到某些情况,从而导致问题或者判断的效率低.下面通过另一种方式去判断. 判断是否合法邮箱: /// <summary> /// 判断是否是合法的邮箱 /// </summary> /// <param name="email">邮箱</param> /// <returns></returns> public static bool I…
http://ac.jobdu.com/problem.php?pid=1203 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数.    接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a.b.c.d都是整数. 输出: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输出"No!”. 样例输入: 2 255.255.255.255 512.…
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3038 解决:1496 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数.     接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a.b.c.d都是整数. 输出: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!",否则输出"No!". 样例输入: 2 255.255.…
题目1203:IP地址 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3636 解决:1800 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数.    接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a.b.c.d都是整数. 输出: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输出"No!”. 样例输入: 2 255.255…
都是比较灵活的一些计算题.只要掌握了其中的规则,还是比较容易解题的.在了解子网的划分如何进行之前呢,一定要弄清楚一个概念:子网掩码.这是弄清楚如何进行子网划分的一个关键. IP地址是四段二进制码拼合而成.每一段二进制码有8位.所以一个IP地址它的长度是32位二进制数.32位的二进制数.占用的呢是4个字节.这个是IPV4的标准.那么IPV6呢就将这个IP地址的长度扩充到了16个字节. 对32位二进制的数位做一个定义: 最高位为第0位,最低位为第31位.就顺次这么过来,0.1.2.3.4.5.6.7…
[九度OJ]题目1203:IP地址 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1203 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数. 接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a.b.c.d都是整数. 输出: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!",否则输出…
判断是否是私网IP地址 私网IP地址范围如下: 192.168.0.0-192.168.255.255 172.16.0.0-172.31.255.255 10.0.0.0-10.255.255.255 我们使用正则去进行匹配: 根据上一篇文章判断是否是IP地址,此处只要加上三个主要的匹配条件问题就迎刃而解 ^((192\.168)|(10\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d))|(172\.(1[6-9]|2[0-9]|3[0-1])))\.(1\d{2}…
#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:判断一个字符串是否是合法IP地址 ''' import re def judge_legal_ip(one_str): ''''' 正则匹配方法 判断一个字符串是否是合法IP地址 ''' compile_ip=re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$') i…