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

python實現(xiàn)ip地址的包含關(guān)系判斷

 更新時間:2020年02月07日 08:30:55   作者:jazhu  
這篇文章主要介紹了python實現(xiàn)ip地址的包含關(guān)系判斷,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

python的IPy模塊雖然可以實現(xiàn)一些ip地址的判斷,但是不是很完美,有些場景根本判斷不出來,還會拋出異常,比如一個地址范圍和一個ip/掩碼,這種不同類型就無法判斷。

對此通過自己寫函數(shù)來實現(xiàn)ip地址的判斷,實現(xiàn)的思路很簡單,先把ip地址轉(zhuǎn)換為一個十進制的范圍數(shù),然后來判斷是否有包含關(guān)系。

#下面函數(shù)可以將ip轉(zhuǎn)換為十進制數(shù)
def iptoint(self,ip):
  try:
    h=[]
    s = ip.split('.')
    for temp in s:
      a=bin(int(temp))[2:]
      a=a.zfill(8)
      h.append(a)
    g=''.join(h)
    e=int(g,2)
  except:
    print('錯誤:不支持該ip的轉(zhuǎn)換' + ip + '\n')
    traceback.print_exc(file=open('exception.log', 'a+')) # 輸出異常信息到文件
  return e
  
  #下面函數(shù)可以將各種類型的地址進行處理后進行轉(zhuǎn)換為十進制數(shù)

  def get_ipint(self,ip):
    try:
      if re.fullmatch('\d+.\d+.\d+.\d+',ip):
        ipint1=self.iptoint(self,ip)
        ipint2=self.iptoint(self,ip)
      elif re.fullmatch('\d+.\d+.\d+.\d+-\d+.\d+.\d+.\d+',ip):
        ipint1=self.iptoint(self,ip.split('-')[0])
        ipint2=self.iptoint(self,ip.split('-')[1])
      elif re.fullmatch('\d+.\d+.\d+.\d+/32',ip):
        ipint1 = self.iptoint(self, ip.split('/')[0])
        ipint2 = ipint1
      elif re.fullmatch('\d+.\d+.\d+.\d+/\d+',ip):
        ipint1 = self.iptoint(self, ip.split('/')[0])
        ipint2 = ipint1+int(math.pow(2,32-int(ip.split('/')[1])))-1
      elif re.fullmatch('\d+.\d+.\d+.\d+/\d+.\d+.\d+.\d+',ip):
        ipint1 = self.iptoint(self, ip.split('/')[0])
        ipint2 = ipint1+int(math.pow(2,32-int(self.exchange_mask(ip.split('/')[1]))))-1
      else:
        ipint1=0
        ipint2=0
      return ipint1,ipint2
    except:
      traceback.print_exc(file=open('exception.log','a+'))#輸出異常信息到文件
      print('錯誤:ip轉(zhuǎn)換失敗' + ip + '\n')

  
  #下面的函數(shù)可以對十進制數(shù)進行包含關(guān)系判斷
  def ip_compare(self,ipa,ipb):
    try:
      ipa1,ipa2=self.get_ipint(ipa)
      ipb1,ipb2 = self.get_ipint(ipb)
      if ipa1<=ipb1<=ipa2 or ipa1<=ipb2<=ipa2 or ipb1<=ipa1<=ipb2 or ipb1<=ipa2<=ipb2:
        isinclude=True
      else:
        isinclude = False
      return isinclude
    except:
      self.m_textCtrl3.AppendText('錯誤:ip對比失敗' + ipa+'-'+ipb + '\n')
      traceback.print_exc(file=open('exception.log', 'a+')) # 輸出異常信息到文件

通過上面的幾個方法可以完美的解決各種類型的ip地址包含關(guān)系判斷。

總結(jié)

以上所述是小編給大家介紹的python實現(xiàn)ip地址的包含關(guān)系判斷,希望對大家有所幫助!

相關(guān)文章

  • Python實現(xiàn)的維尼吉亞密碼算法示例

    Python實現(xiàn)的維尼吉亞密碼算法示例

    這篇文章主要介紹了Python實現(xiàn)的維尼吉亞密碼算法,結(jié)合實例形式分析了基于Python實現(xiàn)維尼吉亞密碼算法的定義與使用相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • python中把嵌套的列表合并成一個列表方法總結(jié)

    python中把嵌套的列表合并成一個列表方法總結(jié)

    python中l(wèi)ist這種數(shù)據(jù)結(jié)構(gòu)很常用到,下面這篇文章主要給大家介紹了關(guān)于python中把嵌套的列表合并成一個列表方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • Python3中的多行輸入問題

    Python3中的多行輸入問題

    這篇文章主要介紹了Python3中的多行輸入問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python內(nèi)存占用過多問題以及其解決方案

    python內(nèi)存占用過多問題以及其解決方案

    Python是一種高級編程語言,被廣泛應(yīng)用于各種領(lǐng)域,包括網(wǎng)站開發(fā)、數(shù)據(jù)分析、人工智能等,這篇文章主要給大家介紹了關(guān)于python內(nèi)存占用過多問題以及其解決方案的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • python 實現(xiàn)list或string按指定分段

    python 實現(xiàn)list或string按指定分段

    今天小編就為大家分享一篇python 實現(xiàn)list或string按指定分段,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python:HDF和CSV存儲優(yōu)劣對比分析

    python:HDF和CSV存儲優(yōu)劣對比分析

    這篇文章主要介紹了python:HDF和CSV存儲優(yōu)劣對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python開發(fā)的十個小貼士和技巧及長常犯錯誤

    Python開發(fā)的十個小貼士和技巧及長常犯錯誤

    這篇文章主要介紹了Python開發(fā)的十個小貼士和技巧,其中一些是初學(xué)這門語言常常會犯的錯誤,小編給大家一一列舉出來了,需要的朋友可以參考下
    2018-09-09
  • python tools實現(xiàn)視頻的每一幀提取并保存

    python tools實現(xiàn)視頻的每一幀提取并保存

    這篇文章主要為大家詳細介紹了python tools實現(xiàn)視頻的每一幀提取并保存,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Python unittest生成測試報告過程解析

    Python unittest生成測試報告過程解析

    這篇文章主要介紹了Python unittest生成測試報告過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 刪除PyCharm解釋器的方法步驟

    刪除PyCharm解釋器的方法步驟

    這篇文章主要給大家介紹了關(guān)于刪除PyCharm解釋器的方法步驟,PyCharm解釋器是指在PyCharm集成開發(fā)環(huán)境中用于運行和調(diào)試Python代碼的解釋器,需要的朋友可以參考下
    2023-09-09

最新評論

清徐县| 武宁县| 秀山| 房产| 蚌埠市| 淳安县| 台东县| 武安市| 小金县| 姜堰市| 正宁县| 崇信县| 靖边县| 梧州市| 彰化县| 新源县| 宁波市| 汉川市| 吴堡县| 高平市| 四平市| 平阳县| 会昌县| 汝阳县| 缙云县| 淮滨县| 芦溪县| 满洲里市| 米泉市| 同德县| 正安县| 西城区| 满城县| 平乡县| 吉木萨尔县| 温州市| 新竹县| 那坡县| 五原县| 古蔺县| 兴国县|