日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python mac地址計算

系統 1951 0

思路是10/16 進制的轉換 字符串的處理

開始造輪子

?

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轉int

替換掉冒號轉16進制

            
              1
            
            
              def
            
            
               macToInt(mac):

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

            
            
              3
            
            
              return
            
             int(mac, 16)
          

?

3、int轉mac?

轉回16進制后進行補位和補冒號

            
               1
            
            
              def
            
            
               intToMac(intMac):

            
            
               2
            
            
              #
            
            
               mac地址每段都是2位 不足位數補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

轉成int后進行數值計算

            
              1
            
            
              def
            
            
               getNextMac(macAddr, n):

            
            
              2
            
            
              return
            
             intToMac(macToInt(macAddr) + n)
          

?

5、獲取上n個mac

轉成int后進行數值計算

            
              1
            
            
              def
            
            
               backOldMac(macAddr, n):

            
            
              2
            
            
              return
            
             intToMac(macToInt(macAddr) - n)
          

?

6、mac地址比較

轉換為int后進行值比較

            
              1
            
            
              def
            
            
               compareMac(macA, macB):

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

?

7、mac地址個數計算

轉換成int后進行減法運算

            
              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、反轉mac地址

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

            
              1
            
            
              def
            
            
               macReverse(mac):

            
            
              2
            
                 info = mac.split(
            
              "
            
            
              :
            
            
              "
            
            
              )

            
            
              3
            
            
                  info.reverse()

            
            
              4
            
            
              return
            
            
              "
            
            
              :
            
            
              "
            
            .join(info)
          

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 砚山县| 临海市| 兖州市| 资溪县| 城步| 鞍山市| 通许县| 中阳县| 钟祥市| 昌图县| 皮山县| 娄底市| 灵丘县| 宜良县| 调兵山市| 手游| 泰兴市| 台北市| 吉水县| 昌都县| 休宁县| 西和县| 金溪县| 淮阳县| 星座| 信丰县| 枣庄市| 清新县| 石柱| 天祝| 临江市| 静乐县| 政和县| 罗江县| 蒲江县| 桃源县| 鄂伦春自治旗| 盐边县| 澄迈县| 巫溪县| 阿拉善左旗|