LearnApplyShare

remote 호스트의 mac address 얻어오는 방법

June 11, 2018 - [macaddress, ARP]

문제

서버에서 클라이언트의 mac address 를 알아낼 수 있을까


결론

같은 네트웍망에 물려있다면 가능하지만, 서로 다른 네트웍망에 속해 있다면 불가


배경지식

  • ARP란? Address Resolution Protocol

    • IP 주소에 대응되는 이더넷카드의 하드웨어 주소(MAC주소)를 알아내는 프로토콜
  • MAC adress란? Media Access Control address

    • 앞 3자리는 네트웍카드 제조회사 고유 코드, 뒤 3자리는 네트웍카드 고유 번호
  • ARP 테이블 조회 명령
$ arp -a
? (169.254.143.159) at b8:44:d9:56:6f:92 on en0 [ethernet]
? (169.254.197.202) at ac:e0:10:60:71:d on en0 [ethernet]
? (169.254.214.31) at e4:70:b8:ee:4e:d1 on en0 [ethernet]

노드에서 mac-address 조회 방법

node-arp 를 설치하고 아래와 같이 처리

var arp = require("node-arp")

arp.getMAC("192.168.0.1", function (err, mac) {
  if (!err) {
    console.log(mac)
  }
})

(단, 로컬의 arp table 을 조회하기 때문에 동일한 네트웍이 아닐 경우에는 활용 불가)


Ref.

https://m.blog.naver.com/sbd38/50191972929