[root@localhost test1]# vim 19.py
//add
#!/usr/bin/python
macaddr = '00:0C:29:D1:6F:E9'
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int(last_two, 16) + 1
new_last_two = hex(plus_one)[2:]
new_mac = prefix_mac + ':' + new_last_two
print new_mac.upper()
/*
prefix_mac -- 定義mac地址的前綴,要保持前五位不變 [:-3] --從開頭取到倒數第三位(冒號也算一位)
last_two -- 先取最后的兩位 ,[-2:] 從倒數第二位一直取到最后
因為mac地址為16進制,要將其轉換為10進制 --plus_one 然后要加1 --得到新的
然后再把這個新的 16進制 轉換為 10進制 -- 有時會打印0x(則表示16進制)
-- new_last_two -- [2:]從第三個取到最后
new_mac --新的地址 ,就是把前綴加上最后計算的兩位,利用冒號來連接
upper() -- 此函數可把 小寫字母 變成 大寫字母
*/
[root@localhost test1]# python 19.py
00:0C:29:D1:6F:EA
/* 上面的只是針對某個mac地址寫的腳本
當有什么不一樣的地方,可以先通過進入python狀態進行測試,
找到了好的解決方法,再寫入腳本中進行顯示
*/
/*
如果 最尾兩位為01 ,當轉換后 0不會顯示, 會顯示 1.
解決方法:
*/
[root@localhost test1]# vim 19.py
//add
#!/usr/bin/python
macaddr = '00:0C:29:D1:6F:01'
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int(last_two, 16) + 1
if plus_one in range(10):
new_last_two = hex(plus_one)[2:]
new_last_two = '0' + new_last_two
else:
new_last_two = hex(plus_one)[2:]
new_mac = prefix_mac + ':' + new_last_two
print new_mac.upper()
/* 如果最后兩位為 0A,則下一個應該為B0,但是0又沒辦法取到
解決方法:
*/
[root@localhost test1]# vim 19.py
//add
#!/usr/bin/python
macaddr = '00:0C:29:D1:6F:0A'
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int(last_two, 16) + 1
if plus_one in range(10):
new_last_two = hex(plus_one)[2:]
new_last_two = '0' + new_last_two
else:
new_last_two = hex(plus_one)[2:]
if len(new_last_two) == 1:
new_last_two = '0' + new_last_two
new_mac = prefix_mac + ':' + new_last_two
print new_mac.upper()