Доброе время суток.
Рубиновый код:
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
на сокетах?