ip合法性校驗是開發中非常常用的,看起來很簡單的判斷,作用確很大,寫起來比較容易出錯,今天我們來總結一下,看一下3種常用的ip位址合法性校驗的方法。
方法1: 正規表示式判定法
最簡單的實現方法是構造乙個正規表示式。判斷使用者的輸入與正規表示式是否匹配。若匹配則是正確的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)$
下面給出相對應的驗證ip的正規表示式:
\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
def
check_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
方法2: 字串拆解法
把ip位址當作字串,以.為分隔符分割,進行判斷
**:#!/usr/bin/python
import
os,sys
def
check_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函式
方法3: 引入ipy類庫
ipy庫是乙個處理ip比較強大的第三方庫
ipy庫的安裝請自行查詢。?
import
ipy
def
is_ip(address):
try
:
ipy.ip(address)
return
true
except
exception as e:
return
false
總結
三種方法都能夠準確的判斷出ip(ip v4)位址的合法性, 正規表示式**量少, 邏輯簡單, 但是正規表示式繁瑣, 字串判定法容易理解,但是**量大, 使用類庫,判斷簡潔,但是需要引入額外的庫。各有利弊, 使用時自行選擇即可。
IP位址詳解
閘道器dns 一些命令 國際標準組織iso international standard orgazination 定義位址分類 五大類 以ip位址的第一位進行區分 a類 1 126 預設子網掩碼 255.0.0.0 b類 128 191 預設子網掩碼 255.255.0.0 c類 192 223 ...
IP位址詳解
一 ip位址和mac位址 1 mac位址 mac media access control,介質訪問控制 位址,或稱為實體地址,也叫硬體位址,用來定義網路裝置的位置,mac位址是網絡卡出廠時設定的,是固定的 但可以通過在裝置管理器中或登錄檔等方式修改,同一網段內的mac位址必須唯一 mac位址採用十...
IP位址詳解
1.區域網 一般稱為內網 2.簡單區域網的構成 交換機,網線,pc 其他it終端 3.交換機 用來組建內網的區域網裝置 路由器兩口足以 交換機多口連線 家裡的路由器其實是路由器和交換機的雜交品種 4.虛擬機器 vmware 有網絡卡插網線 自定義模式 vmnet 1 19 vmware提供了19個虛...