문제

IWLIST 명령이 Linux에서 사용 가능한 무선 네트워크를 어떻게 스캔하는지 알고 싶습니다. 소스 코드를 읽었으며 siocsiwscan을 사용하여 스캔을 트리거하고 siocgiwscan을 트리거하여 스캔 결과를 얻었습니다. 그러나 이러한 시스템 호출에 의해 비콘 프레임이 어떻게 캡처되고 분석됩니까?

도움이 되었습니까?

해결책

iwlist (8) 다른 무선 도구는 지원하는 다른 무선 장치 드라이버에 공통된 프론트 엔드를 제공합니다. Linux 무선 확장 (wext). 각 드라이버는이 인터페이스에 의해 정의 된 장치 특정 작업을 구현하는 Wext와 함께 핸들러를 등록합니다. 스캔의 경우 두 핸들러는 트리거 스캔 (명령 siocsiwscan)이며 스캔 결과를 얻습니다 (siocgiwscan 명령). 장치가 스캔을 완료 한 후 Siocgiwscan 이벤트를 wext로 보냅니다. 넷 링크 상호 작용. 이 소켓을 듣는 응용 프로그램은 Siocgiwscan 명령을 발행하여 장치에서 스캔 결과를 얻을 수 있습니다. 장치는 선택한 스캔을 무료로 구현할 수 있습니다. 예를 들어, 프로브 요청을 보내서 수동적으로 비콘을 듣거나 적극적으로 스캔 할 수 있습니다.

위의 내용은 전통적인 방법 (IOCTL)과 새로운 방식 (NetLink -CFG80211)이 있기 때문에 장치에 명령을 전송하는 메커니즘에 대해 의도적으로 모호합니다. 그러나 구체적인 모범을 보이려면 전통적인 방법을 고려하십시오. IOCTL 호출은 WEXT 모듈에서 구현되지만이 명령을 처리하는 코드는 장치 드라이버에서 구현됩니다. 사용자 공간 응용 프로그램이 IOCTL을 만들면 Wext는 장치 드라이버 핸들러를 찾아 실행합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top