Доброе время суток.
Рубиновый код:
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': операция не поддерживается для сокета (Errno::EOPNOTSUPP)`
Можно ли как-то исправить/пропустить это сообщение об ошибке и начать работать ioctl
на сокетах?