2008-09-25 3 views

답변

0

이더넷 장치 (요즘 대부분의 칩셋을 지원해야하는 BTW ...)에서 신뢰할 수있는 연결 상태 정보를 얻을 수 없다면 로컬 서브넷의 각 IP에 대해 ARP 요청을 보내는 것이 좋습니다. 오버 헤드는 최소화되며 단일 응답을 얻는 즉시 네트워크에 연결되어 있는지 확인할 수 있습니다.

여기에서 볼 수있는 유일한 문제는 장치가/8 서브넷에 있으면 모든 4294967296 가능한 IP를 반복하는 데 꽤 오래 걸릴 수 있다는 것입니다. 따라서 ARP 테이블에 현재있는 모든 IP뿐만 아니라 기본 게이트웨이에 대한 ARP 요청 만 보내는 것과 같은 일부 최적화를 고려할 수도 있습니다.

+0

고마워요! 프로그래밍 방식으로 리눅스에서 ARP를 보내는 방법에 대한 모든 포인터? – Jeff

2

당신은 (이것은 리눅스에서이다) 브로드 캐스트 핑 (ping)을 시도 할 수 있습니다 :

ping -b 255.255.255.255 

또 다른 옵션은 Nmap를 다운로드 핑 스캔을하는 것입니다.

1

nmap을 사용할 수 있습니다. 여전히 원유이지만 적어도 그렇게하기 위해 설계된 도구를 사용하므로 시간을 낭비 할 필요가 없습니다.

0

최근에 연결되어있는 동료가 있으면 처음에 핑 또는 핑을 시도해 볼 수 있습니다. 그러면 트래픽이 줄어들 수 있습니다.

0

또한 tcpdump -n을 실행하여 네트워크에서 어떤 것이 활성 상태인지 확인할 수도 있습니다.

0

ICMP 핑 또는 ARP 요청에 대한 응답을받지 못하면 네트워크 연결이 없음을 100 % 보장하지 않습니다. 예를 들어, 방화벽에 연결된 네트워크상의 장치가있을 수 있습니다.

편집 : 임베디드 장치의 하위 레벨 정보에 액세스하여 실제로 데이터를 보내지 않고도 네트워크 인터페이스의 링크가 있는지 확인할 수 있습니다.

0

장치가 UPnP 또는 Bonjour를 지원할 가능성이 있습니까? 저수준 프로토콜 외에도 어떤 종류의 플러그 - & -Play 기능을 지원하는 이러한 프로토콜을 살펴 봐야합니다. 예를 들어, UPnP 장치는 스위치가 꺼지기 전에 LAN에서 메시지를 보냅니다 (단,이 장치를 뽑아서 제거하면 도움이되지 않습니다).

관련 문제