좋은 시간.Mac + Ruby : Socket의 ioctl에 액세스 할 수 없습니까? 어떻게 고치는 지?
루비 코드 :
무엇을 할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에서 작동합니다. 그러나 맥 OS X에, 메신저 오류가 :``IOCTL '운영 소켓 (errno를 :: EOPNOTSUPP)에서 지원되지`
이 오류 메시지가 소켓에 ioctl
작업 얻을 &/수정 통과 어쨌든이 있나요?
SIOCGIFHWADDR의 정의는 어디서 얻습니까? 내 Mac에서 이것은 시스템 헤더 파일에서도 정의 된 것처럼 보이지 않습니다. sockio.h에 SIOCGLIFADDR이 있는데 같은 일을하는 것처럼 보이지만 (루비에서 액세스하는 방법을 모르겠습니다). – SteveRawlinson
감사합니다. freebsd의 출처에서 가져 왔습니다. –