일부 유지 관리를 수행하기 전에 네트워크에서 분리 된 내 내장 장치를 사용자에게 확인하려고합니다. 내 서브넷에있는 모든 IP 주소를 "핑 (ping)"하는 것을 고려하고 있습니다. 더 잘 작동 할 수있는 브로드 캐스트/ARP 방법이 있습니까?로컬 서브넷에 다른 장치가 있는지 어떻게 알 수 있습니까?
답변
이더넷 장치 (요즘 대부분의 칩셋을 지원해야하는 BTW ...)에서 신뢰할 수있는 연결 상태 정보를 얻을 수 없다면 로컬 서브넷의 각 IP에 대해 ARP 요청을 보내는 것이 좋습니다. 오버 헤드는 최소화되며 단일 응답을 얻는 즉시 네트워크에 연결되어 있는지 확인할 수 있습니다.
여기에서 볼 수있는 유일한 문제는 장치가/8 서브넷에 있으면 모든 4294967296 가능한 IP를 반복하는 데 꽤 오래 걸릴 수 있다는 것입니다. 따라서 ARP 테이블에 현재있는 모든 IP뿐만 아니라 기본 게이트웨이에 대한 ARP 요청 만 보내는 것과 같은 일부 최적화를 고려할 수도 있습니다.
당신은 (이것은 리눅스에서이다) 브로드 캐스트 핑 (ping)을 시도 할 수 있습니다 :
ping -b 255.255.255.255
또 다른 옵션은 Nmap를 다운로드 핑 스캔을하는 것입니다.
nmap을 사용할 수 있습니다. 여전히 원유이지만 적어도 그렇게하기 위해 설계된 도구를 사용하므로 시간을 낭비 할 필요가 없습니다.
최근에 연결되어있는 동료가 있으면 처음에 핑 또는 핑을 시도해 볼 수 있습니다. 그러면 트래픽이 줄어들 수 있습니다.
또한 tcpdump -n을 실행하여 네트워크에서 어떤 것이 활성 상태인지 확인할 수도 있습니다.
ICMP 핑 또는 ARP 요청에 대한 응답을받지 못하면 네트워크 연결이 없음을 100 % 보장하지 않습니다. 예를 들어, 방화벽에 연결된 네트워크상의 장치가있을 수 있습니다.
편집 : 임베디드 장치의 하위 레벨 정보에 액세스하여 실제로 데이터를 보내지 않고도 네트워크 인터페이스의 링크가 있는지 확인할 수 있습니다.
장치가 UPnP 또는 Bonjour를 지원할 가능성이 있습니까? 저수준 프로토콜 외에도 어떤 종류의 플러그 - & -Play 기능을 지원하는 이러한 프로토콜을 살펴 봐야합니다. 예를 들어, UPnP 장치는 스위치가 꺼지기 전에 LAN에서 메시지를 보냅니다 (단,이 장치를 뽑아서 제거하면 도움이되지 않습니다).
- 1. 장치가 jailbroken되어 있는지 확인할 수 있습니까?
- 2. 컨트롤이 시각화되고 있는지 어떻게 알 수 있습니까?
- 3. 드라이브에 플로피가 있는지 어떻게 알 수 있습니까?
- 4. 개체가 비어 있는지 어떻게 알 수 있습니까?
- 5. 요소가 목록에 있는지 어떻게 알 수 있습니까?
- 6. 파이썬에 자식이 있는지 어떻게 알 수 있습니까?
- 7. QLineEdit에 포커스가 있는지 어떻게 알 수 있습니까?
- 8. Dispatcher.DisableProcessing이 활성화되어 있는지 어떻게 알 수 있습니까?
- 9. 오픈 릴레이가 있는지 어떻게 알 수 있습니까?
- 10. Java에서 누수가 있는지 어떻게 알 수 있습니까?
- 11. Windows에서 로컬 네트워크 소켓의 다른 쪽 끝에 어떤 프로세스가 있는지 어떻게 알 수 있습니까?
- 12. USB 저장 장치가 연결되어 있는지 AIR에서 알 수 있습니다.
- 13. 모바일 네트워크를 사용할 수 있는지 여부를 어떻게 알 수 있습니까?
- 14. 안드로이드에서 파일을 읽고 쓸 수 있는지 어떻게 알 수 있습니까?
- 15. Mac에 어떤 Python 라이브러리가 설치되어 있는지 어떻게 알 수 있습니까?
- 16. 클래스를 직렬화 할 수 있는지 어떻게 알 수 있습니까?
- 17. scp를 Perl에서 사용할 수 있는지 어떻게 알 수 있습니까?
- 18. PostgreSQL에서 트리거를 사용할 수 있는지 어떻게 알 수 있습니까?
- 19. iPhone 앱에서 외부에서 볼 수 있는지 어떻게 알 수 있습니까?
- 20. MFC에서 CComboBox를 사용할 수 있는지 어떻게 알 수 있습니까?
- 21. AUCTeX를 사용할 수 있는지 어떻게 알 수 있습니까?
- 22. 연결된 SQL Server가 로컬 컴퓨터에 있는지 어떻게 확인할 수 있습니까?
- 23. 다른 프로세스가 파일을 만드는 과정에 있는지 알 수 있습니까?
- 24. erlang 프로세스가 어떤 노드에서 실행되고 있는지 어떻게 알 수 있습니까?
- 25. IIS가 실제로 내 HTML을 압축하고 있는지 어떻게 알 수 있습니까?
- 26. 세션 쿠키가 사용되고 있는지 어떻게 알 수 있습니까?
- 27. 닫힌 경로에 주어진 점이 있는지 어떻게 알 수 있습니까?
- 28. Perl 변수에 어떤 유형의 값이 있는지 어떻게 알 수 있습니까?
- 29. OpenGL/Glut에서 버튼이 눌러져 있는지 어떻게 알 수 있습니까? (리눅스)
- 30. 스크립트 관리자가 페이지에 있는지 어떻게 알 수 있습니까?
고마워요! 프로그래밍 방식으로 리눅스에서 ARP를 보내는 방법에 대한 모든 포인터? – Jeff