最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年03月06日 10:10:12   投稿:zx  
這篇文章主要介紹了詳解Python判定IP地址合法性的三種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

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

方法1: 正則表達(dá)式判定法

最簡單的實(shí)現(xiàn)方法是構(gòu)造一個(gè)正則表達(dá)式。判斷用戶的輸入與正則表達(dá)式是否匹配。若匹配則是正確的IP地址,否則不是正確的IP地址。

復(fù)制代碼 代碼如下:

^(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)$

下面給出相對(duì)應(yīng)的驗(yàn)證ip的正則表達(dá)式:

\d表示0~9的任何一個(gè)數(shù)字

{2}表示正好出現(xiàn)兩次

[0-4]表示0~4的任何一個(gè)數(shù)字

| 的意思是或者

1\d{2}的意思就是100~199之間的任意一個(gè)數(shù)字

2[0-4]\d的意思是200~249之間的任意一個(gè)數(shù)字

25[0-5]的意思是250~255之間的任意一個(gè)數(shù)字

[1-9]\d的意思是10~99之間的任意一個(gè)數(shù)字

[1-9])的意思是1~9之間的任意一個(gè)數(shù)字

\.的意思是.點(diǎn)要轉(zhuǎn)義(特殊字符類似,@都要加\\轉(zhuǎn)義)

代碼如下:

import re
def 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地址當(dāng)作字符串,以.為分隔符分割,進(jìn)行判斷

代碼:

#!/usr/bin/python 
import os,sys 
def check_ip(ipAddr): 
    import sys 
    addr=ipAddr.strip().split('.') #切割I(lǐng)P地址為一個(gè)列表 
    #print addr 
    if len(addr) != 4: #切割后列表必須有4個(gè)參數(shù) 
        print "check ip address failed!"
        sys.exit() 
    for i in range(4): 
        try: 
            addr[i]=int(addr[i]) #每個(gè)參數(shù)必須為數(shù)字,否則校驗(yàn)失敗 
        except: 
            print "check ip address failed!"
            sys.exit() 
        if addr[i]<=255 and addr[i]>=0:  #每個(gè)參數(shù)值必須在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]) #滿足條件調(diào)用校驗(yàn)IP函數(shù)

方法3: 引入IPy類庫

IPy庫是一個(gè)處理IP比較強(qiáng)大的第三方庫

IPy庫的安裝請(qǐng)自行查找。

import IPy 
 def is_ip(address): 
  try: 
    IPy.IP(address) 
    return True 
  except Exception as e: 
    return False

總結(jié)

三種方法都能夠準(zhǔn)確的判斷出ip(IP V4)地址的合法性, 正則表達(dá)式代碼量少, 邏輯簡單, 但是正則表達(dá)式繁瑣, 字符串判定法容易理解,但是代碼量大, 使用類庫,判斷簡潔,但是需要引入額外的庫。各有利弊, 使用時(shí)自行選擇即可。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python的numpy庫下的幾個(gè)小函數(shù)的用法(小結(jié))

    Python的numpy庫下的幾個(gè)小函數(shù)的用法(小結(jié))

    這篇文章主要介紹了Python的numpy庫下的幾個(gè)小函數(shù)的用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 如何更改Pycharm配置文件的存放路徑

    如何更改Pycharm配置文件的存放路徑

    Pycharm配置文件默認(rèn)是放在C盤的,修改存放位置,這樣系統(tǒng)重裝的時(shí)候就不會(huì)不見了,下面這篇文章主要給大家介紹了關(guān)于如何更改Pycharm配置文件的存放路徑的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 200行python代碼實(shí)現(xiàn)2048游戲

    200行python代碼實(shí)現(xiàn)2048游戲

    這篇文章主要為大家詳細(xì)介紹了200行Python代碼實(shí)現(xiàn)2048游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 如何在python中實(shí)現(xiàn)隨機(jī)選擇

    如何在python中實(shí)現(xiàn)隨機(jī)選擇

    這篇文章主要介紹了如何在python中實(shí)現(xiàn)隨機(jī)選擇,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python?OpenCV實(shí)現(xiàn)簡單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)

    Python?OpenCV實(shí)現(xiàn)簡單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)

    Python?OpenCV可以用來進(jìn)行顏色識(shí)別,可以通過讀取圖像的像素值,來判斷像素點(diǎn)的顏色,從而實(shí)現(xiàn)顏色識(shí)別,這篇文章主要給大家介紹了關(guān)于Python?OpenCV實(shí)現(xiàn)簡單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • python標(biāo)準(zhǔn)庫模塊之json庫的基礎(chǔ)用法

    python標(biāo)準(zhǔn)庫模塊之json庫的基礎(chǔ)用法

    json庫是處理JSON格式的Python標(biāo)準(zhǔn)庫,json庫主要包括兩類函數(shù),操作函數(shù)和解析函數(shù),下面這篇文章主要給大家介紹了關(guān)于python標(biāo)準(zhǔn)庫模塊之json庫的基礎(chǔ)用法,需要的朋友可以參考下
    2022-06-06
  • Python判斷List中是否包含某個(gè)元素

    Python判斷List中是否包含某個(gè)元素

    在Python中,判斷一個(gè)列表(List)是否包含某個(gè)特定元素是常見的任務(wù)之一,本文就來介紹一下多種判斷List成員包含性的方法,并提供豐富的示例代碼,以幫助大家更好地理解和運(yùn)用這些技術(shù)
    2023-12-12
  • python模擬實(shí)現(xiàn)斗地主發(fā)牌

    python模擬實(shí)現(xiàn)斗地主發(fā)牌

    這篇文章主要為大家詳細(xì)介紹了python代碼模擬實(shí)現(xiàn)斗地主發(fā)牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • PyInstaller運(yùn)行原理及常用操作詳解

    PyInstaller運(yùn)行原理及常用操作詳解

    這篇文章主要介紹了PyInstaller運(yùn)行原理及常用操作詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào)

    在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào)

    今天小編就為大家分享一篇在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評(píng)論

武宁县| 石河子市| 龙州县| 宁武县| 涟水县| 大城县| 荣成市| 吴桥县| 安西县| 台湾省| 历史| 贡嘎县| 浮梁县| 墨江| 廉江市| 芮城县| 南安市| 巴中市| 青铜峡市| 衡东县| 延川县| 松原市| 浏阳市| 威信县| 黔南| 德惠市| 临颍县| 奉节县| 榆中县| 阿坝| 伽师县| 湾仔区| 葫芦岛市| 丰县| 方正县| 牙克石市| 蚌埠市| 马山县| 三台县| 京山县| 崇仁县|