Code: Select all
Let>RP_WAIT=1
MidStr>%SCRIPT_DIR%,0,1,VOLUME_LETTER
IfFileExists>%SCRIPT_DIR%\dump.txt
DeleteFile>%SCRIPT_DIR%\dump.txt
Endif>
IfFileExists>%SCRIPT_DIR%\wlan_scan.txt
DeleteFile>%SCRIPT_DIR%\wlan_scan.txt
Endif>
//Script require admin rights if you want to force a new scan
//Let>TOGGLE_WLAN=netsh interface set interface name=%WLAN_NAME% admin
//Let>COMMAND_LINE_STRING=cmd /c %VOLUME_LETTER%: & cd "%SCRIPT_DIR%" & %TOGGLE_WLAN%=disabled & %TOGGLE_WLAN%=enabled & netsh wlan show networks mode=bssid > "wlan_scan.txt"
Let>COMMAND_LINE_STRING=cmd /c %VOLUME_LETTER%: & cd "%SCRIPT_DIR%" & netsh wlan show networks mode=bssid > "wlan_scan.txt"
RunProgram>COMMAND_LINE_STRING
ReadFile>%SCRIPT_DIR%\wlan_scan.txt,TEMP_WLAN_SCAN
Let>REGEX_PATTERN=SSID \d* :
RegEx>REGEX_PATTERN,TEMP_WLAN_SCAN,0,,,1,||,TEMP_WLAN_SCAN
Separate>TEMP_WLAN_SCAN,||,TEMP_SSID_WITH_BSSID
Let>SSID=
Let>SSID_NUM=0
Let>LIST=
Let>k=0
Repeat>k
Let>k=k+1
Let>TEMP_NETWORK=TEMP_SSID_WITH_BSSID_%k%
MidStr>TEMP_NETWORK,0,1,TEST
If>TEST={" "}
//skip this one
Else>
Let>SSID_NUM=SSID_NUM+1
Separate>TEMP_NETWORK,%CRLF%,TEMP_NETWORK_SSID_INFO
Trim>TEMP_NETWORK_SSID_INFO_1,TEMP_SSID
Let>WLAN_SSID_%SSID_NUM%=%TEMP_SSID%
WriteLn>%SCRIPT_DIR%\dump.txt,,%CRLF%### %SSID_NUM% ###
WriteLn>%SCRIPT_DIR%\dump.txt,,SSID:%TEMP_SSID%
ConCat>SSID,TEMP_SSID
IfNot>k=TEMP_SSID_WITH_BSSID_count
ConCat>SSID,%CRLF%
Endif>
RegEx> BSSID ,TEMP_NETWORK,0,,,1,||,TEMP_ROW_BSSID_K
Separate>TEMP_ROW_BSSID_K,||,TEMP_ROW_BSSID_INFO_K
//We skip the first match since we're only wanting the BSSIDs
Let>p=1
Repeat>p
Let>p=p+1
Let>WLAN_SSID_%SSID_NUM%_BSSID_count=p-1
Let>TEMP_ROW_BSSID_P=TEMP_ROW_BSSID_INFO_K_%p%
Separate>TEMP_ROW_BSSID_P,%CRLF%,TEMP_ROW_X
Let>x=0
Repeat>x
Let>x=x+1
Let>TEMP_X=TEMP_ROW_X_%x%
Length>TEMP_X,TEST_ROW
If>TEST_ROW>0
Separate>TEMP_X, : ,TEMP_X_SEP
Trim>TEMP_X_SEP_1,TEMP_ROW_VAR
RegEx> ,TEMP_ROW_VAR,0,,,1,_,TEMP_ROW_VAR
Trim>TEMP_X_SEP_2,TEMP_ROW_VAL
If>x=1
Let>WLAN_SSID_%SSID_NUM%_BSSID_%p%_MAC=TEMP_ROW_VAL
Let>TEMP_P=WLAN_SSID_%SSID_NUM%_BSSID_count
WriteLn>%SCRIPT_DIR%\dump.txt,,### BSSID %SSID_NUM%:%TEMP_P% ###
WriteLn>%SCRIPT_DIR%\dump.txt,,%TAB%MAC:%TEMP_ROW_VAL%
Else>
Let>WLAN_SSID_%SSID_NUM%_BSSID_%p%_%TEMP_ROW_VAR%=TEMP_ROW_VAL
WriteLn>%SCRIPT_DIR%\dump.txt,,%TAB%%TEMP_ROW_VAR%:%TEMP_ROW_VAL%
Endif>
Endif>
Until>x=TEMP_ROW_X_count
Until>p=TEMP_ROW_BSSID_INFO_K_count
Endif>
Until>k=TEMP_SSID_WITH_BSSID_count
ExecuteFile>%SCRIPT_DIR%\dump.txt