亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python mac地址計算

系統(tǒng) 2023 0

思路是10/16 進(jìn)制的轉(zhuǎn)換 字符串的處理

開始造輪子

?

1、判斷是否是mac地址

正則匹配是否符合條件

            
              1
            
            
              import
            
            
               re

            
            
              2
            
            
              3
            
            
              def
            
            
               isMac(string):

            
            
              4
            
                 preg = re.compile(
            
              '
            
            
              ^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$
            
            
              '
            
            
              )

            
            
              5
            
                 ret =
            
               preg.match(string)

            
            
              6
            
            
              if
            
             ret 
            
              is
            
            
               None:

            
            
              7
            
            
              return
            
            
               False

            
            
              8
            
            
              else
            
            
              :

            
            
              9
            
            
              return
            
             True
          

?

2、mac轉(zhuǎn)int

替換掉冒號轉(zhuǎn)16進(jìn)制

            
              1
            
            
              def
            
            
               macToInt(mac):

            
            
              2
            
                 mac = mac.replace(
            
              "
            
            
              :
            
            
              "
            
            , 
            
              ""
            
            
              )

            
            
              3
            
            
              return
            
             int(mac, 16)
          

?

3、int轉(zhuǎn)mac?

轉(zhuǎn)回16進(jìn)制后進(jìn)行補(bǔ)位和補(bǔ)冒號

            
               1
            
            
              def
            
            
               intToMac(intMac):

            
            
               2
            
            
              #
            
            
               mac地址每段都是2位 不足位數(shù)補(bǔ)0 例如:f:23:54 => 0f:23:54
            
            
               3
            
            
              if
            
             len(hex(intMac)) % 2 !=
            
               0:

            
            
               4
            
                     hexStr = 
            
              '
            
            
              0{0:X}
            
            
              '
            
            
              .format(intMac)

            
            
               5
            
            
              else
            
            
              :

            
            
               6
            
                     hexStr = 
            
              '
            
            
              {0:X}
            
            
              '
            
            
              .format(intMac)

            
            
               7
            
            
               8
            
                 i =
            
               0

            
            
               9
            
                 ret = 
            
              ""
            
            
              10
            
            
              11
            
            
              while
            
             i <= len(hexStr) - 2
            
              :

            
            
              12
            
            
              if
            
             ret == 
            
              ""
            
            
              :

            
            
              13
            
                         ret = hexStr[i:(i + 2
            
              )]

            
            
              14
            
            
              else
            
            
              :

            
            
              15
            
                         ret = 
            
              ""
            
            .join([ret, 
            
              "
            
            
              :
            
            
              "
            
            , hexStr[i:(i + 2
            
              )]])

            
            
              16
            
                     i = i + 2

            
              17
            
            
              return
            
             ret
          

?

4、獲取下n個mac

轉(zhuǎn)成int后進(jìn)行數(shù)值計算

            
              1
            
            
              def
            
            
               getNextMac(macAddr, n):

            
            
              2
            
            
              return
            
             intToMac(macToInt(macAddr) + n)
          

?

5、獲取上n個mac

轉(zhuǎn)成int后進(jìn)行數(shù)值計算

            
              1
            
            
              def
            
            
               backOldMac(macAddr, n):

            
            
              2
            
            
              return
            
             intToMac(macToInt(macAddr) - n)
          

?

6、mac地址比較

轉(zhuǎn)換為int后進(jìn)行值比較

            
              1
            
            
              def
            
            
               compareMac(macA, macB):

            
            
              2
            
            
              return
            
             macToInt(macA) >= macToInt(macB)
          

?

7、mac地址個數(shù)計算

轉(zhuǎn)換成int后進(jìn)行減法運算

            
              1
            
            
              def
            
            
               calcMacNum(mac_start, mac_end):

            
            
              2
            
                 mac_start =
            
               mac_start
            
            .upper()
            
3    mac_end = mac_end .upper()
4    ret = macToInt(mac_end) - macToInt(mac_start) + 1
5 if ret < 0:
6 ret = 0
7 return ret

?

8、反轉(zhuǎn)mac地址

mac地址的反序化,去掉冒號后反轉(zhuǎn)字符串然后加回冒號

            
              1
            
            
              def
            
            
               macReverse(mac):

            
            
              2
            
                 info = mac.split(
            
              "
            
            
              :
            
            
              "
            
            
              )

            
            
              3
            
            
                  info.reverse()

            
            
              4
            
            
              return
            
            
              "
            
            
              :
            
            
              "
            
            .join(info)
          

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品美女免费视频大全 | 国产高清福利91成人 | 成人毛片在线视频 | 亚欧在线免费观看 | 亚洲一区成人 | 国产最新网站 | 国产综合久久一区二区三区 | 女人十八毛片免费特黄 | 成人亚欧网站在线观看 | 99精品视频在线成人精彩视频 | 中文字幕日韩一区二区 | 欧美综合亚洲图片综合区 | 国产永久免费高清动作片www | 99视频在线永久免费观看 | 精品国产成人三级在线观看 | 曰本lesxxxx在线观看视频 | 亚洲综合色在线 | 国产国语一级毛片中文 | 国产成人综合在线 | 国产成人精品999在线 | 久久社区 | 久久精品女人毛片国产 | 久久国产精品系列 | 色费女人18毛片a级视频在线 | 在线国产一区二区三区 | 97久久国产一区二区三区四区 | 国产女人综合久久精品视 | 免费看爱爱视频 | 日日撸夜夜撸网站 | 日日爽视频 | 99这里只有精品视频 | 久久久久久久综合日本亚洲 | 久久精品视频在线 | 国产成人亚洲精品91专区手机 | 亚洲黄页 | 欧美精品网 | 久久精品国产大片免费观看 | 久久免费精品视频在线观看 | 久草在线视频免费资源观看 | 91中文字幕yellow字幕网 | 伊人国产精品 |