MACアドレスをランダムに生成 Rubyでmacgen.pyと同じ機能

Pocket

仮想ホストのネットワークインターフェイスに設定するために、MACアドレスを生成するmacgen.pyというPhythonスクリプトがあります。

これをRubyで実装したmacgen.rbを書いてみました。

macgen.py: http://www.linux-kvm.com/sites/default/files/macgen.py

#!/usr/bin/python
# macgen.py script to generate a MAC address for Red Hat Virtualization guests
#
import random
#
def randomMAC():
	mac = [ 0x00, 0x16, 0x3e,
		random.randint(0x00, 0x7f),
		random.randint(0x00, 0xff),
		random.randint(0x00, 0xff) ]
	return ':'.join(map(lambda x: "%02x" % x, mac))
#
print randomMAC()

macgen.rb: https://gist.github.com/krhitoshi/9837105#file-macgen-rb

#!/usr/bin/env ruby

# Xen
#mac = [0x00, 0x16, 0x3e, Random.rand(0x7f), Random.rand(0xff), Random.rand(0xff)]
# QEMU or KVM
mac = [0x52, 0x42, 0x00, Random.rand(0x7f), Random.rand(0xff), Random.rand(0xff)]

puts (["%02x"] * 6).join(":") % mac

実行してみると次のようになります。

$ chmod 755 ./macgen.rb
$ ./macgen.rb
52:42:00:47:61:b0
$ ./macgen.rb
52:42:00:5f:78:2a
$ ./macgen.rb
52:42:00:0c:6a:5b

ちなみに、最初の3つのペアが00:16:3eなのはXen用で、QEMU/KVMでは52:42:00で始まるMACアドレスをランダムに生成することになります。コメントアウトで切り替えることができます。

余談ですが、以前にvirt-installのマニュアルに間違いがあったことで、QEMU/KVM用のMACアドレスが54:52:00と勘違いされることもあるようです。
Bug 620838 – mistype in virt-install manpage – 54:52 should be 52:54

関連記事

    None Found

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です