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

python mac地址計算

系統 2038 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條評論
主站蜘蛛池模板: 兴安盟| 南昌市| 宝丰县| 饶平县| 耿马| 临朐县| 威信县| 巴南区| 通海县| 永州市| 朝阳市| 临夏市| 东安县| 乌拉特后旗| 和田市| 梁平县| 江都市| 壤塘县| 泉州市| 南溪县| 阿勒泰市| 汕尾市| 汾西县| 邵阳市| 兴海县| 平遥县| 萍乡市| 乐平市| 永嘉县| 潜山县| 开江县| 彭阳县| 宝坻区| 五家渠市| 丰台区| 乾安县| 屯门区| 永德县| 南平市| 徐水县| 新丰县|