2013-07-02 6 views
1

디바이스가 무선 LAN (DHCP 사용 가능)에 있는지를 판별하여 디바이스에 따라 특정 조치를 취할 수있는 VB .Net 프로그램을 작성하려고합니다.특정 MAC 주소에 대해 arp 캐시를 새로 고치는 방법은 무엇입니까?

종종 장치의 MAC 주소가 있는지 확인하기 위해 arp 캐시를 쿼리 할 때 (역순 조회 루틴을 사용하여) 장치 캐시 시간 초과가 만료되고 장치가 arp에서 제거 되었기 때문에 찾지 못했습니다. .

장치가 DHCP를 사용하여 IP 주소를 가져 오기 때문에 "알려진"IP 주소로 ARP 캐시를 쿼리 할 수는 없지만 MAC 주소를 사용하여 장치를 식별해야합니다.

장치가 켜져 있거나 꺼져 있는지 신속하게 알아 내려고 했으므로 MAC 검색 실패가 만료 된 캐시 항목의 결과인지 장치가 실제로 꺼져 있는지 여부를 확인하고자합니다.

장치 MAC 주소 만 알면 ARP에 다시 알려야하므로 30 초 안에 ARP 캐시를 다시 검색해 볼 수있는 방법이 있습니까?

+0

이 장치는 프로그래밍 할 수있는 장치입니까? 그렇다면 브로드 캐스트 메시지에 응답하여 자신을 식별하도록 구성 할 수 있습니다. – Kratz

+0

진지하게 * 여기 주제에 관한 질문을하는 사람은 ** 가능한 한 빨리 답변을 필요로하지 않는다고 믿고 있습니까? 왜 그렇게 특별한 걸까요? 질문 끝에 "자격이있는"부분을 제거했습니다. –

답변

1

장치와 동일한 서브넷에 있고 장치가 브로드 캐스트 ICMP 핑에 응답하는 경우 브로드 캐스트 핑을 보낼 수 있습니다.

내 예제에서 내 컴퓨터는 서브넷 129.21.49.0/24 (49.0에서 49.255)에 129.21.49.41입니다.

  • 이러한 네트워크에 대한 네트워크 주소 (제 1 어드레스)
  • 제 할당 주소 129.21.49.1
  • 마지막 할당 주소가 브로드 캐스트 주소가 129.21.49.254
  • 이다 129.21.49.0이고 129.21.49.255.

    angst(~) > ping 129.21.49.255 
    PING 129.21.49.255 (129.21.49.255): 56 data bytes 
    64 bytes from 129.21.49.254: icmp_seq=0 ttl=255 time=0.316 ms 
    64 bytes from 129.21.49.205: icmp_seq=0 ttl=64 time=0.422 ms (DUP!) 
    64 bytes from 129.21.49.148: icmp_seq=0 ttl=64 time=0.703 ms (DUP!) 
    64 bytes from 129.21.49.31: icmp_seq=0 ttl=64 time=0.766 ms (DUP!) 
    64 bytes from 129.21.49.23: icmp_seq=0 ttl=64 time=0.822 ms (DUP!) 
    64 bytes from 129.21.49.246: icmp_seq=0 ttl=64 time=13.538 ms (DUP!) 
    ^C 
    

    사람들은 핑 방송에 응답하도록 구성되어 온라인 내 서브 네트워크에있는 모든 머신입니다 :

다음은 예입니다.

+0

또한,'arping'을 사용해 볼 수도 있지만, 작동시키기 위해서 항상 많은 어려움을 겪었습니다. 실제로는 역 ARP 쿼리를 생성하지 않는 것처럼 보입니다. – antiduh