17.8. 生成新的唯一 MAC 地址

在有些情况下您需要为客户端生成新的唯一 MAC 地址。完成本文时还没有可用来生成新 MAC 地址的命令行工具。下面提供的脚本可以为您的客户端生成新的 MAC 地址。将该脚本在您的客户端中保存为 macgen.py。现在您可以在该目录中使用 ./macgen.py 运行该脚本生成新的 MAC 地址。输出应类似如下:

  1. $ ./macgen.py
  2. 00:16:3e:20:b0:11
  3. #!/usr/bin/python
  4. # macgen.py script to generate a MAC address for virtualized guests on Xen
  5. #
  6. import random
  7. #
  8. def randomMAC():
  9. mac = [ 0x00, 0x16, 0x3e,
  10. random.randint(0x00, 0x7f),
  11. random.randint(0x00, 0xff),
  12. random.randint(0x00, 0xff) ]
  13. return ':'.join(map(lambda x: "%02x" % x, mac))
  14. #
  15. print randomMAC()
为您的客户端生成新 MAC 地址的另一种方法

您还可以使用 python-virtinst 的内嵌模块生成用于客户端配置文件的新 MAC 地址以及 UUID:

  1. # echo 'import virtinst.util ; print\
  2. virtinst.util.uuidToString(virtinst.util.randomUUID())' | python
  3. # echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python

以上脚本还可以作为脚本文件使用,如下。

  1. #!/usr/bin/env python
  2. # -*- mode: python; -*-
  3. print ""
  4. print "New UUID:"
  5. import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID())
  6. print "New MAC:"
  7. import virtinst.util ; print virtinst.util.randomMAC()
  8. print ""