正規表示式判定法
最簡單的實現方法是構造乙個正規表示式。判斷使用者的輸入與正規表示式是否匹配。若匹配則是正確的ip位址,否則不是正確的ip位址。
下面給出相對應的驗證ip的正規表示式:
^(1\d|2[0
-4]\d|25[0
-5]|[1
-9]\d|[1
-9])\.(1\d|2[0
-4]\d|25[0
-5]|[1
-9]\d|\d)\.(1\d|2[0
-4]\d|25[0
-5]|[1
-9]\d|\d)\.(1\d|2[0
-4]\d|25[0
-5]|[1
-9]\d|\d)$
\d表示0~9的任何乙個數字
表示正好出現兩次
[0-4]表示0~4的任何乙個數字
| 的意思是或者
1\d的意思就是100~199之間的任意乙個數字
2[0-4]\d的意思是200~249之間的任意乙個數字
25[0-5]的意思是250~255之間的任意乙個數字
[1-9]\d的意思是10~99之間的任意乙個數字
[1-9])的意思是1~9之間的任意乙個數字
\.的意思是.點要轉義(特殊字元類似,@都要加\\轉義)
**如下:
import re
defcheck_ip
(ipaddr):
compile_ip=re.compile('^(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')
if compile_ip.match(ipaddr):
return
true
else:
return
false
字串拆解法
把ip位址當作字串,以.為分隔符分割,進行判斷
#!/usr/bin/python
import os,sys
defcheck_ip
(ipaddr):
import sys
addr=ipaddr.strip().split('.') #切割ip位址為乙個列表
#print addr
if len(addr) != 4: #切割後列表必須有4個引數
print
"check ip address failed!"
sys.exit()
for i in range(4):
try:
addr[i]=int(addr[i]) #每個引數必須為數字,否則校驗失敗
except:
print
"check ip address failed!"
sys.exit()
if addr[i]<=255
and addr[i]>=0: #每個引數值必須在0-255之間
pass
else:
print
"check ip address failed!"
sys.exit()
i+=1
else:
print
"check ip address success!"
if len(sys.ar**)!=2: #傳參加本身長度必須為2
print
"example: %s 10.0.0.1 "%sys.ar**[0]
sys.exit()
else:
check_ip(sys.ar**[1]) #滿足條件呼叫校驗ip函式
引入ipy類庫
ipy庫是乙個處理ip比較強大的第三方庫。涉及到計算大量的ip位址,包括網段、網路掩碼、廣播位址、子網數、ip型別等別擔心,ipy模組拯救你。ipy模組可以很好的輔助我們高效的完成ip的規劃工作。
ipy庫的安裝方法請根據自己的作業系統自行查詢,有很多詳細例子。
import ipy
defis_ip
(address):
try:
ipy.ip(address)
return
true
except exception as e:
return
false
總結三種方法都能夠準確的判斷出ip(ip v4)位址的合法性, 正規表示式**量少, 邏輯簡單, 但是正規表示式繁瑣, 字串判定法容易理解,但是**量大, 使用類庫,判斷簡潔,但是需要引入額外的庫。各有利弊, 使用時自行選擇即可。
」。
IP位址合法性校驗
我們一般用cidr來表示一段ip位址。cidr是這樣乙個字串 先是乙個ipv4的位址的字串表示,加乙個 分隔符,再加乙個13 含 到27 含 之間的整數。比如 192.128.1.134 25 表示從192.128.1.128 含 到192.128.1.255 含 的128個ip位址。前的字段 19...
詳解Python判定IP位址合法性的三種方法
ip合法性校驗是開發中非常常用的,看起來很簡單的判斷,作用確很大,寫起來比較容易出錯,今天我們來總結一下,看一下3種常用的ip位址合法性校驗的方法。方法1 正規表示式判定法 最簡單的實現方法是構造乙個正規表示式。判斷使用者的輸入與正規表示式是否匹配。若匹配則是正確的ip位址,否則不是正確的ip位址。...
Python 判定IP位址合法性的三種方法
ip ip合法性校驗是開發中非常常用的,看起來很簡單的判斷,作用確很大,寫起來比較容易出錯,今天我們來總結一下,看一下3種常用的ip位址合法性校驗的方法。正規表示式判定法 最簡單的實現方法是構造乙個正規表示式。判斷使用者的輸入與正規表示式是否匹配。若匹配則是正確的ip位址,否則不是正確的ip位址。下...