可以先轉換為十進制?進行加減操作後?再轉換回十六進制即可
封裝的兩個函數:
1、string.split用於分割字符串,傳入要分割的字符串和分隔符,返回分割後的table
2、add_mac_address用於計算mac地址增加後的值,傳入要計算的mac地址和步進,返回計算結果
(註意:未考慮超過255後進位問題,留著妳自己思考吧,O(∩_∩)O~)具體代碼如下:
function?string.split(str,?delimiter)if?str==nil?or?str==''?or?delimiter==nil?then
return?nil
end
local?result?=?{}
for?match?in?(str..delimiter):gmatch("(.-)"..delimiter)?do
table.insert(result,?match)
end
return?result
end
function?add_mac_address(mac_addr,step)
if?mac_addr==nil?or?string.find(mac_addr,':')==nil?or?#string.split(mac_addr,':')~=6?or?tonumber(step)==nil?then
return?nil
end
local?mac_addr_tb=string.split(mac_addr,':')
local?mac_addr_new_tb={}
for?k,v?in?pairs(mac_addr_tb)?do
if?k==6?then
dec_num=tonumber('0x'..mac_addr_tb[6])+tonumber(step)
else
dec_num=tonumber('0x'..mac_addr_tb[k])
end
mac_addr_new_tb[k]=string.format("%02x",tostring(dec_num))
end
return?table.concat(mac_addr_new_tb,':')
end
print(add_mac_address('14:9f:e8:5c:06:0d','1'))