国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Python判定IP地址合法性的三種方法

2020-02-22 23:22:45
字體:
來源:轉載
供稿:網友

IP合法性校驗是開發中非常常用的,看起來很簡單的判斷,作用確很大,寫起來比較容易出錯,今天我們來總結一下,看一下3種常用的IP地址合法性校驗的方法。

IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~255)

方法1: 正則表達式判定法

最簡單的實現方法是構造一個正則表達式。判斷用戶的輸入與正則表達式是否匹配。若匹配則是正確的IP地址,否則不是正確的IP地址。

代碼如下:
^(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)$

下面給出相對應的驗證ip的正則表達式:

/d表示0~9的任何一個數字

{2}表示正好出現兩次

[0-4]表示0~4的任何一個數字

| 的意思是或者

1/d{2}的意思就是100~199之間的任意一個數字

2[0-4]/d的意思是200~249之間的任意一個數字

25[0-5]的意思是250~255之間的任意一個數字

[1-9]/d的意思是10~99之間的任意一個數字

[1-9])的意思是1~9之間的任意一個數字

/.的意思是.點要轉義(特殊字符類似,@都要加//轉義)

代碼如下:

import redef check_ip(ipAddr):  compile_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 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.argv)!=2: #傳參加本身長度必須為2     print "Example: %s 10.0.0.1 "%sys.argv[0]     sys.exit() else:     check_ip(sys.argv[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            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米易县| 读书| 姚安县| 玛多县| 中方县| 凤山县| 荆门市| 澜沧| 五莲县| 绥芬河市| 乌恰县| 江华| 临夏县| 若羌县| 都江堰市| 华池县| 太保市| 积石山| 乐昌市| 大新县| 页游| 海宁市| 乌鲁木齐县| 婺源县| 元阳县| 原平市| 枣庄市| 南华县| 皮山县| 凉城县| 泰兴市| 琼海市| 于田县| 罗源县| 韩城市| 杭州市| 西平县| 工布江达县| 肥西县| 珲春市| 象山县|