3

一天中的好时光。

红宝石代码:

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使用套接字?

4

1 回答 1

1

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

“以下功能在 Mac OS X 上不可用:

1) POSIX Timer Library (-librt Real Time) 2) ioctl with command SIOCGIFHWADDR - 获取网络接口的 Mac 地址。”

这就是生活。

于 2011-11-28T22:09:35.967 回答