Bon moment de la journée.Mac + Ruby: Impossible d'accéder à ioctl de Socket? Comment réparer?
code Ruby:
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')
Ce qu'il faut faire: obtient mac adresse de l'interface.
Fonctionne sur Debian comme prévu. Mais sous Mac OS X, im obtenir erreur: `` ioctl ': Opération non pris en charge sur la prise (Errno :: EOPNOTSUPP) `
Y at-il de toute façon de fixer/transmettre ce message d'erreur & Faire fonctionner ioctl
sur les sockets?
D'où obtenez-vous la définition de SIOCGIFHWADDR? Sur mon Mac, cela ne semble pas être défini même dans les fichiers d'en-tête du système - il y a un SIOCGLIFADDR dans sockio.h qui semble faire la même chose (mais je ne sais pas comment y accéder depuis ruby). – SteveRawlinson
Merci, obtenu à partir de sources de freebsd. –