Wake on Lan
id:cxx:20070727:wake_on_lanのスクリプトを少し改良して使わせて頂いてます。
改良点は00:00:00:00:00:00を0:0:0:0:0:0と書いてもOKにしました。
(OS Xの?) arpの出力が頭の0を省略するので、そのフォーマットへの対応。
#!/usr/bin/env ruby require 'socket' def wakeonlan(addr) packed = addr.split(/-|:/).map{|x| ('0'+x)[-2,2]}.join('').to_a.pack('H12') msg = "\xff" * 6 + packed * 16 sock = UDPSocket.open() sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, 1) sock.send(msg, 0, '<broadcast>', 9) end if __FILE__ == $PROGRAM_NAME if ARGV.size == 1 && ARGV[0] =~ /\A([[:xdigit:]]{1,2}[-:]){5}[[:xdigit:]]{1,2}\z/ wakeonlan(ARGV[0]) else puts 'Usage: wakeonlan.rb MAC_address' end end