동일한 네트워크에 있는 두 노드 간의 RSSI를 측정해야 합니다. 다음 두 가지 정보가 있는 경우:
- 네트워크의 SSID입니다.
- 연결된 RSSI를 얻는 데 사용되는 대상 노드의 IP입니다.
그래서 이 명령을 찾았습니다. iwspy
그런데 커널에서는 찾을 수 없는 것 같습니다.협회
말하다:
우리는 쓸모가 없기 때문에 오래 전에 iwspy 지원을 제거했지만 지원 주장을 중단하는 것을 잊었습니다. 분명히 아무도 신경 쓰지 않았지만 어쨌든 삭제되었습니다.
답변1
인터페이스가 IBSS, 메시 포인트 또는 AP/P2P 그룹 소유자 모드인 경우 덤프 네트워크 카드를 사용하여 사이트 MAC 및 해당 신호 레벨을 감지할 수 있습니다 iw dev wlan0 station dump
.
IP 주소에서 MAC을 얻으려면 ARP 테이블을 사용하는 것이 좋습니다 ip neigh
. ARP 테이블을 채우기 위해 IP 주소를 ping해야 할 수도 있습니다.
따라서 주소 A를 주장하는 노드의 RSSI를 얻으려면 다음과 같을 수 있습니다.
MAC="$(ip neigh show to A dev wlan0 | cut -f 3 -d ' ')"
if [ -n "$MAC" ]; then
iw dev wlan0 station get "$MAC" | sed -nre "s@\s*signal:\s*@@p"
else
# no ARP entry. Ping the address and retry.
fi
그러나 인터페이스가 이러한 유형이 아닌 경우(예: AP가 아닌 사이트) 모니터 모드를 조작해야 하며 IP 주소에서 MAC 주소를 얻을 수 있는 신뢰할 수 있는 방법이 없습니다. 경로를 지정하면 보낸 사람의 IP가 아닌 보낸 사람의 IP가 사용됩니다.
언급했듯이 iwconfig/iwspy/iwlist/iwpriv
더 이상 사용되지 않으며 짜증납니다. 이들은 더 이상 사용되지 않으며 이전 버전과의 호환성 목적으로만 커널 구성에서 활성화된 경우에만 구현되는 커널 API(무선 확장)를 사용합니다. 따라서 Wi-Fi Direct를 포함한 많은 기능이 가짜이거나 부족한 부분이 많습니다. Wi-Fi Direct를 사용하는 경우 이미 최신 nl80211 핵심 API를 사용하고 있는 것이므로 wext API 및 iwconfig/iwspy
.
예, 노드의 MAC 주소가 필요합니다. Wi-Fi는 OSI 모델의 레이어 1과 2에서 실행되며 상위 레이어에는 관심이 없습니다. IP와 MAC 주소는 서로 다른 용도로 사용되며 동일한 것이 아닙니다.