Mac + Ruby:无法访问Socket的ioctl? 怎么修?

一天中的好时光。

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') 

它做什么:获取接口的mac-address。

按预期在Debian上运行。 但是在Mac OS X上,我得到错误:“ioctl’:套接字不支持操作(Errno :: EOPNOTSUPP)

反正有没有修复/传递此错误消息并在套接字上工作ioctl

http://hintsforums.macworld.com/showthread.php?t=97909

“在Mac OS X上无法使用以下function[s]:

1)POSIX定时器库(-librt实​​时)2)带命令SIOCGIFHWADDR的ioctl – 获取网络接口的Mac地址。“

这就是生活。