Skip to content

Commit 5fda6b1

Browse files
committed
Add SQLite3 DB
1 parent e1824e5 commit 5fda6b1

File tree

3 files changed

+36
-5
lines changed

3 files changed

+36
-5
lines changed

observations.db

3 KB
Binary file not shown.

schema

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CREATE TABLE obs (
2+
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
3+
TIMESTAMP CHAR(32),
4+
MAC CHAR(13),
5+
SSID CHAR(32),
6+
RSSI INT,
7+
FREQ INT,
8+
DIST REAL
9+
);
10+

ssidentity.c

+26-5
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,17 @@ Deauthentication wlan.fc.type_subtype eq 12
4343
#include "cAssert.h"
4444

4545

46+
static int sqlCallback(void *NotUsed, int argc, char **argv, char **azColName){
47+
return 0;
48+
}
49+
4650
int main( int argc, char **argv ) {
4751
//SQL vars
4852
char *sqlCmd;
4953
char *sqlErr;
5054
sqlite3 *requestDB;
55+
int rc = sqlite3_open("observations.db", &requestDB);
56+
cAssertMsg((rc <= 0), "Failed to open observations.db\n");
5157
// Buffer for received 80211 frames
5258
uint8_t pktBuff[PKT_BUFF_SZ];
5359
// Setup a scoket for *any* protocol
@@ -64,13 +70,29 @@ int main( int argc, char **argv ) {
6470
Request request = parseRaw(pktBuff, recvDataSize);
6571
// Print it if it's not null
6672
if( request != NULL ){
67-
printf("%s \"%s\" %s\t\t%ddBm %umHz Dist: %.02fm\n",
73+
printf("%s %s \"%s\"\t%ddBm %umHz Dist: %.02fm\n",
6874
request->timeStamp,
6975
request->clientMAC,
7076
request->SSID,
7177
request->RSSI,
7278
request->frequency,
7379
request->distance);
80+
// Add a new entry to the db
81+
sqlCmd = sqlite3_mprintf("INSERT INTO obs "
82+
"(TIMESTAMP, MAC, SSID, RSSI, FREQ, DIST)"
83+
" VALUES ('%q', '%q', '%q', %d, %u, %.02f);",
84+
request->timeStamp,
85+
request->clientMAC,
86+
request->SSID,
87+
request->RSSI,
88+
request->frequency,
89+
request->distance);
90+
/* Execute SQL statement */
91+
rc = sqlite3_exec(requestDB, sqlCmd, sqlCallback, 0, &sqlErr);
92+
if( rc != SQLITE_OK ){
93+
// printf(stderr, "SQL error: %s\n", sqlErr);
94+
sqlite3_free(sqlErr);
95+
}
7496
}
7597
free(request);
7698
}
@@ -133,7 +155,7 @@ Request parseRaw( uint8_t *buff, uint16_t buffSize ) {
133155
request->SSID[i+2] = hexByte[2];
134156
request->SSID[i+3] = hexByte[3];
135157
// Kick i fwd a few spots
136-
i+=4;
158+
i+=3;
137159
validSSID = FALSE;
138160
}
139161
}
@@ -240,10 +262,9 @@ uint64_t macU8ToU64( uint8_t *mac ) {
240262
https://en.wikipedia.org/wiki/Free-space_path_loss
241263
for MHz / meters,
242264
243-
FSPL(dB) = 20*log10( dist ) + 20*log10( freq ) - 27.55
244-
265+
RSSI = FSPL(dB) = 20*log10( dist ) + 20*log10( freq ) - 27.55
245266
*/
246267
float signalToDistance( int8_t RSSI, uint16_t frequency ) {
247-
float distance = (27.55-(20*log10(frequency))+abs(RSSI))/20;
268+
float distance = (27.55-RSSI-(20*log10(frequency)))/20.00;
248269
return (float)pow(10, distance);
249270
}

0 commit comments

Comments
 (0)