python 正则RE匹配IP地址

使用re库匹配IP地址

一、说明

  ip地址为xxx.xxx.xxx.xxx,其中xxx为0-255直接数字。

  本文匹配为(1-255).(0-255).(0-255).(1-254)

二、匹配表达式

1 ip_match = r"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[1-9])\.)(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}(?:25[0-4]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[1-9])$"

三、代码与自测

 1 #自测情况
 2 def seperate_ip(ip_address):
 3     ip_match = r"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[1-9])\.)(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}(?:25[0-4]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[1-9])$"
 4
 5     if re.match(ip_match, ip_address):
 6         print ip_address+‘:      ‘, re.match(ip_match, ip_address)
 7     else:
 8         print ip_address+‘:  ‘, re.match(ip_match, ip_address)
 9
10
11 seperate_ip(‘1.108.116.1‘)
12 seperate_ip(‘200.108.116.1‘)
13 seperate_ip(‘100.108.116.1‘)
14 seperate_ip(‘1.100.001.1‘)
15 seperate_ip(‘001.100.001.001‘)
16 seperate_ip(‘1.0.0.1‘)
17 seperate_ip(‘100.255.255.1‘)
18
19 seperate_ip(‘255.108.116.255‘)
20 seperate_ip(‘1.100.001.000‘)
21 seperate_ip(‘0.100.001.000‘)
22 seperate_ip(‘0.108.116.1‘)
23 seperate_ip(‘119.108.116.0‘)
24 seperate_ip(‘000.108.116.1‘)
25 seperate_ip(‘100.256.116.1‘)
26 seperate_ip(‘100.100.256.1‘)

原文地址:https://www.cnblogs.com/perilong16/p/12008271.html

时间: 2024-10-07 05:29:47

python 正则RE匹配IP地址的相关文章

正则-匹配IP地址

>>> re.search(r'[aeiouAEIOU]','I love FishC.com!') 中括号里面的任意一个字符匹配成功就会返回数值 <_sre.SRE_Match object; span=(0, 1), match='I'> >>> re.search(r'[a-z]','I love FishC.com!')#中括号中可以用小横杠代表范围 <_sre.SRE_Match object; span=(2, 3), match='l'&

python中利用正则表达式匹配ip地址

现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式,应该一步步分解,把复杂的问题简单化 比如ip地址,我们可以总结一下规律 1. 它是一个字符串 2. 字符串内部是由4个1-3位的数字和3个.组成 3. 数字的范围是0-255 接下来,我们先试一下匹配第1个数字 第一步:尝试匹配192.168.100.123中的192 >>> import

使用正则表达式匹配IP地址

如何使用正则表达式匹配IP地址?这是很常见的任务.说难也难,说易也易,取决于在匹配的精确度以及正则表达式复杂度之间很好的折中. 通常,IP地址以点分十进制方式表示,IP地址分为4段,以点号分隔.要对IP地址进行匹配,首先要对其进行分析.0.0.0.0 - 255.255.255.255 一个简单的正则表达式: [0-9]+(?:\.[0-9]+){0,3} 或者 ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ 它能够完成我们的任务,但是像"3948.3.89.34238"

Python 获取本机IP地址

import socket #获取本机IP地址 self.local_ip = socket.gethostbyname(socket.gethostname()) print (self.local_ip) python 判断本机是否联网 1 timeout = 200 2 host = 'www.baidu.com' 3 port = 80 4 s=socket.socket() 5 s.settimeout(timeout) 6 status = s.connect_ex((host,po

Python自动化运维——IP地址处理模块

Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:IPy 功能:辅助我们高效的完成IP的规划工作 安装: wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate tar -zxvf Ipy-0.81.tar.gz cd IPy-0.81 python setup.py install IP地址.网段的基本处理: 使用方法: #fro

python实战系列之ip地址排序问题(02)

1. 背景说明 从openstack的nova list中获取了虚拟机的ip地址,但这些ip都没有排序和分组,为了进一步增强可读性,对ip地址执行排序操作,在shell下,可以通过sort命令,执行排序操作,具体操作如下: [[email protected] ~]# cat ip.txt | sort -t "." -k1,1n -k2,2n -k3,3n -k4,4n 10.1.104.75 10.1.104.87 10.1.104.149 10.1.104.151 10.1.10

python 获取本机ip地址的方法(Unix 平台)

1 #!/usr/bin/python 2 import socket 3 import fcntl 4 import struct 5 def get_ip_address(ifname): 6 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 7 return socket.inet_ntoa(fcntl.ioctl( 8 s.fileno(), 9 0x8915, # SIOCGIFADDR 10 struct.pack('256s'

写一个简单的python脚本来返回ip地址的掩码,子网个数等

如果我们想快速得到一个IP地址段有多少个ip,快速得到IP地址段的子网掩码,或者快速得到一个IP地址的二进制,那么可以来学习一下.本文利用python的一个IP分析模块IPy实现,首先安装IPy模块 wget https://pypi.python.org/packages/88/28/79162bfc351a3f1ab44d663ab3f03fb495806fdb592170990a1568ffbf63/IPy-0.83.tar.gz tar -xf IPy-0.83.tar.gz cd IP

[转] python 获取本机ip地址的两种实现方法

#!/usr/bin/python import socket import fcntl import struct def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:2