良い時間です。
ルビーコード:
def hw_address(iface)
sock = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM,0)
buf = [iface,""].pack('a16h16')
sock.ioctl(SIOCGIFHWADDR, buf);
sock.close
return buf[18..24].to_etheraddr
end
puts hw_address('lo0')
機能: インターフェイスの MAC アドレスを取得します。
期待どおりに Debian で動作します。しかし、Mac OS X では、「ioctl': Operation not supported on socket (Errno::EOPNOTSUPP)」というエラーが発生します。
このエラーメッセージを修正/渡しioctl
、ソケットで作業する方法はありますか?