b/g 인터페이스에서 WiFi를 스캔하고 각 채널에 100ms를 소비하여 각 채널에서 패킷을 스니핑하고 싶습니다. 내가 가진 가장 큰 요구 사항 중 하나는 (디스크 공간이 적어서) 패킷을 저장하지 않고, 내 응용 프로그램이 패킷을 구문 분석하고 MAC 및 RSSI를 검색하며 목록 (MAC, 평균 RSSI, # 레코드)을 구성합니다. 매분마다이 목록을 지우고 다시 시작하십시오.리눅스에서 채널 호핑을 사용하는 패킷 스니핑
나는 리눅스에 채널 홉을 수행하는 두 가지 방법을 알아 냈어요 :
옵션 1 : 사용 wi_set_channel (구조체 WIF의 *, 채널 번호) C에서 시스템 호출, 및 C 코드를 작성 모든 패킷
을 도청옵션 2 : 사용 리눅스 명령 IW 설정 채널 4을 wlan0 dev에, 그리고 패킷을 도청 파이썬 + scapy 또는 C와 같은 언어를 사용
와이파이 인터페이스가 다른 채널로 전환하는 지연/대기가 최소화되도록 둘 중 어떤 것이 더 효율적인지 알고 싶습니다. 이 지연은 패킷 손실을 의미하는 반면 다른 채널로의 전환은 일어난다 고 생각합니다.
저는 리눅스에서이 문제를 해결하는 다른 방법을 알고 싶습니다.
옵션 1이 2보다 나은 이유를 알려주십시오. 당신이 말하는 것은 옵션 2를 사용하여 달성 할 수 있습니다. 옵션 1의 채널 전환이 두 번째 옵션보다 더 효율적인지 알고 싶습니다. – Ouroboros
채널 스캔은 옵션 1로만 수행 할 수있는 것이 아닙니다. 모든 채널을 '스캔'해야한다는 필요성을 감안할 때, 프로세스 생성/제거로 커널을 스 래시하지 않아 프로세스 관리에 시간을 투자하는 것이 가장 좋습니다 당신이 패킷 스니핑에 소비했을 수도 있습니다. –
채널 호핑에 대한 어떤 기술이 더 효율적인지 물어 본다면 어떤 것이 효과가 있을까요? 내가이 질문을하는 이유는 옵션 2에서 python + scapy 또는 다른 스크립팅 (또는 비 스크립팅) 언어를 사용하여 제안한 것을 할 수 있기 때문입니다. 원형 버퍼를 구현한다고 가정하면 모든 언어에서 스레드 등이 가능하지만 유일한 차이점은 채널 전환의 오버 헤드입니다. 그러면 어느 것이 더 좋을까요? "wi_set_channel (구조체 wif *, 채널 번호)"또는 "iw dev wlan0 set channel 4"? – Ouroboros