WIZnet Developer Forum

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

안녕하세요,
w5500 을 사용하여 dhcp 를 통하여 ip 를 획득하고 이를 이용하여 송수신까지 완료하여 데이터 송수신 이후의 어플 작성중에 있습니다.
그런데 우리의 구현 요구사항중웨 IP 를 가지고 해당 디바이스의 MAC 을 얻어야 될 필요성이 발생하였습니다.

구글링을 해보니 arp 를 이용해서 처리 하는 것 같은데 이와 관련하여 혹 w5500 계열혹은 w5xxx 계열에서 관련 예제코드가 없을 까요
아니면 방법을 알려 주시면 감사하겠습니다.

감사합니다.

안녕하세요.

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주소를 패킷에 첨부하여 전송하게 됩니다.

감사합니다.

도움이 많이 되었습니다.
도와 주신 덕분에 해결되어 지금 진도 나가고 있습니다. 감사합니다.

안녕하세요.

도움이 되었다니 다행입니다.

좋은 결과 있으시길 바랍니다.

감사합니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.