위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

Visitor Tracking via Wi-Fi

WIZnet Academy 2016.05.01 11:25 조회 수 : 17

WiFi 패킷 중에는 Probe request라는 패킷이 있습니다. 이 패킷은 단말(스마트폰)이 스스로 주변에 있는 (AP)공유기의 정보를 요청하는 역할을 합니다.

wifi-probe

한가지 예로 스마트폰의 WiFi 기능을 켠 후 주변 공유기를 선택하는 화면에서 ‘검색’을 누르면 선택 화면의 공유기 정보가 새로 표시되는 것을 볼 수 있습니다.  ‘검색’을 눌렀을 때 스마트 폰이 Probe request 패킷을 보낸 후 응답이 오는 AP의 리스트를 화면에 표시하는 것이라 할 수 있습니다.

Probe request는 WiFi 단말이 주변 AP의 정보를 요청할때 사용되며, 이 패킷에는 WiFi 단말(Probe request 패킷을 보내는 주체)의 MAC address (네트워크 단말의 고유 ID) 가 포함되어 있습니다. 따라서 Probe Request 패킷을 캡쳐할 수 있다면, 그 주변의 특정 MAC이 머무른 시간 등에 대한 데이터를 수집할 수 있습니다. 물론 스마트폰 기기 및 사용 여부에 따라 Probe Request를 보내는 주기가 다르고 특정 OS에서는 MAC을 암호화 하고 있는 이슈들이 있기는 하지만, 이번 포스팅에서는 예외사항은 고려하지 않고, Probe Reqeust를 활용하여 특정 지역의 유동 인구들을 Tracking 해보는 단말을 한번 제작해보겠습니다.

하드웨어

우선 아래와 같은 하드웨어가 필요합니다.

  • WIZwiki-W7500ECO : Cortex-M0 플랫폼 보드

  • WizFi310 : Wi-Fi 모듈로 현재 위즈네트에서 개발중인 모듈로 주변의 다른 Wi-Fi 단말의 Probe Request 패킷을 캡쳐할 수 있는 기능이 포함되어 있습니다.

  • SD CARD


probe-1

WizFi310에서 Probe request를 스캔 후 WIZWiki-W7500ECO로 보내고, WIZwiki-W7500은 이 데이터를 파싱하여 SD카드에 저장합니다.

관련한 소스코드는 아래 링크에서 확인할 수 있습니다.

https://developer.mbed.org/users/jehoon/code/WiFi_Tracker/

Result

위의 작업결과로 아래와 같은 내용을 확인할 수 있습니다.

probe-2

  • x4000: Probe request packet을 나타낸다.

  • xx:xx:xx~~: MAC address

  • -84: RSSI(신호 감도)


위의 raw data를 이용해서 EXCEL Tool로 분석해 보면 아래와 같은 데이터를 구할 수 있습니다.

probe-3

응용예시

일단 분석까지는 마쳤는데, 이 데이터를 활용하여 어떤 응용을 생각해볼 수 있을까요? 아래는 위의 방법을 활용 특정 장소에서 약 12시간 동안 Probe Request 를 캡쳐하여 그래프로 변경한 값입니다.

probe-4

  • 약 36,000회 Probe request 패킷을 캡쳐

  • 343개의 MAC address가 검색됨

  • 특정 MAC이 15,000회 검색됨

  • 1000회 이상 검색된 MAC: 5

  • 100회 이상 검색된 MAC: 33


특정 장소에 자주 방문하는 사람들을 찾고, 그리고 그 사람들을 대상으로 주변 지역의 다양한 정보를 제공해주는 어플리케이션들도 생각해볼 수 있겠지요?

출처 : Daniel's Blog