python学习-判断是否是IP地址
1、使用正则表达式
首先分析IP地址的组成,十进制的合法IP地址由32位数字组成
- 使用.分割开
 - 每个分组可出现的情况:
第一个分组:
1-9:一位数字
10-99:两位数字
100-199:三位数字且以1开头
200-249
250-255
其余分组:
0-9
10-99
100-199
200-249
250-255 
#coding=utf8
import IPy,re
f1=open(r'D:\sectool\venv\iplist.txt',mode='r')
def is_ip(ipAddr):
    check_ip=re.compile('^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')
    if check_ip.match(ipAddr):
        return True
    else:
        return False
if __name__ == '__main__':
    for i in f1.readlines():
        if is_ip(i):
            print i.strip() + ' is vaild ip address'
        else:
            continue

也可以使用在线工具调试

刚遇到的时候曾想过用2[0-5][0-5]匹配200-255,发现第三位大于5的没法匹配,还是要分开写:
2[0-4]\d
25[0-5]
2、导入第三方库判断
#coding=utf8
import IPy
f1=open(r'D:\sectool\venv\iplist.txt',mode='r')
def  is_ip(address):
    try:
        IPy.IP(address)
        return True
    except Exception as  e:
        return False
if __name__ == '__main__':
    for i in f1.readlines():
        if is_ip(i):
            print i.strip()+' is vaild ip address'
        else:
            continue

python学习-判断是否是IP地址的更多相关文章
- python学习-判断是否是私网IP地址
		
判断是否是私网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.25 ...
 - python 判断两个ip地址是否属于同一子网
		
python 判断两个ip地址是否属于同一子网 """ 判断两个IP是否属于同一子网, 需要判断网络地址是否相同 网络地址:IP地址的二进制与子网掩码的二进制地址逻辑&q ...
 - IP地址和子网划分学习笔记之《IP地址详解》
		
2018-05-03 18:47:37 在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. ...
 - 如何判断两个IP地址是不是在同一个网段
		
要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网. 例:假定选择了子网掩码255.255.254. ...
 - 如何判断两个IP地址是不是处于同一网段?
		
个人理解,欢迎指正. 一.要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果-->网络号,如果网络号相同, 就在同一子网,否则,不在同一子网. 例:假定选 ...
 - python绝技 — 使用PyGeoIP关联IP地址和物理位置
		
准备工作 要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库. 我们可以使用开源数据库GeoLiteCity,它能够较为准确地把IP地址与所在城市关联起来 下载地址:http://dev.m ...
 - 网络协议学习(2)---IP地址
		
一.IPv4地址 IPv4地址为32bit地址,分为5类(ABCDE,这里不讨论特殊用途的D和E类). 通常我们八位一看,写成4个部分,例如:00000000 00000000 00000000 00 ...
 - python中利用正则表达式匹配ip地址
		
现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式 ...
 - Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等
		
java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是符合,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,因为本人对正则表达式没有太深的研究,所有感兴趣的朋友可以自行百度.我这就给基本 ...
 
随机推荐
- MVC笔记--特性路由
			
物性路由:将路由和控制器放在一起,这样更简单方便,还可以处理复杂的路由场景 传统路由:集中.强制.基于代码风格来定义的. 每个MVC应用程序都需要路由来定义自己的处理请求方式,路由是MVC是应用程序的 ...
 - 从零开始学 Web 之 移动Web(四)实现JD分类页面
			
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
 - C#效率优化(3)-- 使用foreach时避免装箱
			
Introduction: ※本文不是在描述旧版本Unity中mono编译器导致的foreach语句额外装箱错误 博主是一名Unity 3D游戏开发者,游戏使用C#+lua开发,最近在优化C#代码时, ...
 - Ajax之跨域访问与JSONP
			
前言 同源策略的限制,使得ajax无法发出跨域请求.在许多情况下,我们需要让ajax支持跨域.以下是其中一种解决方案(JSONP).JSONP解决了跨域数据访问的问题. 在html中,具有src属性的 ...
 - Docker入门记1
			
Docker是一个部署容器技术,它出现的目的主要解决开发人员在本机开发的时候安装的各类类库等一系列运行程序的包啊库啊,然后把这些引用的第三方类库和操作系统需要的配置打包起来,形成一个原子环境,然后部署 ...
 - 如何在github上搭建一个免费的 无限流量的静态网页博客Github pages
			
前言: 看到很多相关的教程,但是在实际操作的时候还是遇见了不少问题,这里记录分享一下我的操作流程.免费空间用过很多,博客也用过一些,听说了github后就想试着玩一下这个静态库,感觉挺不错的,操作也比 ...
 - RocketMQ的broker启动失败解决
			
RocketMQ的broker用如下命令启动: nohup sh bin/mqbroker -n localhost:9876 & 使用jps查看,系统非常卡顿,broker的名字也未显示.使 ...
 - Ansible系列(四):playbook应用和roles自动化批量安装示例
			
Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html playbook是ansible实现批量自动化最重要的手段.在其中可以使用变 ...
 - 初始mvc4(一)  新建项目
			
mvc4和mvc4.5基本大同小异,vs2012中已经集成了mvc,不需要手动安装了,现在就来看看如何新建mvc项目 一.首先打开vs2012,新建项目,选中web中mvc4 二.选择项目模板 这里面 ...
 - c#unicode,中文互转
			
/// <summary> /// 中文转unicode /// </summary> /// <returns></returns> public s ...