Ip 를 가지고 해당 디바이스 mac 을 얻기 위한 예제코드

안녕하세요.

arp 관련해서 구현을 하시고 싶으신거죠?

먼저, 아래의 URI 페이지로 넘어가셔서 W7100A Application Note (Docs & Sample Codes)을 다운받으세요.

wiznet.co.kr/ko/product-item/imcu7100-evb/

받으신 파일의 압축을 풀고, 아래의 경로대로 폴더에 접속하시면 ARP를 구현한 예제가 있습니다.

W7100A_AN_SampleCodes_v1.51 → Applications → MACRAW

간단한 설명을 드리자면,

W5500칩은 내부적으로 ARP를 처리합니다.

W5500칩을 이용하여 상대방 Peer 와 통신할 때, 칩 내부적으로 ARP 패킷을 전송한 뒤 MAC에 대한 정보를 받고 Data 통신을 하게 되는데요.

만약 사용자가 이를 직접 구현하고 싶다면 다음과 같은 방법으로 구현하셔야 합니다.

  1. Socket을 새로 생성합니다. (이 말은 현재 Data전송하는 Socket에 ARP를 전송할 Socket을 따로 생성해야한다는 뜻입니다.)

  2. 다운로드 한 ARP Example을 이용하여 ARP 패킷 전송 (W5xxx 시리즈와 W7xxx 시리즈는 Socket 생성방법이 다릅니다. 이를 확인해주세요.)

Application 부분의 구현은 따로 수정이 필요없을 것으로 보입니다. 다만 Socket 생성 방법이 다르니 확인하고 작성해주시면 될 것 같습니다.

ARP는 크게 Request (요청) 패킷과 Response (응답) 패킷으로 나뉘게 됩니다.

Request는 말그대로 IP에 MAC을 요청하는 것이고, Response는 요청에 대한 응답으로 자신의 MAC주소를 패킷에 첨부하여 전송하게 됩니다.

감사합니다.