From 82296d0f2df48e5d153a5bc41c5b951d636d16316876b666ff9407849a69fa1b Mon Sep 17 00:00:00 2001 From: Philipp Schweizer Date: Tue, 31 Dec 2024 16:14:02 +0100 Subject: [PATCH] feat: wigle proxy call added --- server/.env.template | 5 +++- server/src/proxy/wigle.ts | 61 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 server/src/proxy/wigle.ts diff --git a/server/.env.template b/server/.env.template index b9b73cf..16c19d3 100644 --- a/server/.env.template +++ b/server/.env.template @@ -3,4 +3,7 @@ DB_USER="" DB_PASSWORD="" DB_HOST="" DB_DIALECT="" -DB_PORT="" \ No newline at end of file +DB_PORT="" +WIGLE_TOKEN="" +WIGLE_BASE_URL="https://api.wigle.net" +WIGLE_NETWORK_SEARCH="/api/v2/network/search" \ No newline at end of file diff --git a/server/src/proxy/wigle.ts b/server/src/proxy/wigle.ts new file mode 100644 index 0000000..9270c67 --- /dev/null +++ b/server/src/proxy/wigle.ts @@ -0,0 +1,61 @@ +interface WifiLocationResponse { + success: boolean; + totalResults: number; + first: number; + last: number; + resultCount: number; + results: Result[]; + searchAfter: string; + search_after: number; +} + +interface Result { + trilat: number; + trilong: number; + ssid: string; + qos: number; + transid: string; + firsttime: string; + lasttime: string; + lastupdt: string; + netid: string; + name?: string; + type: string; + comment?: string; + wep: string; + bcninterval: number; + freenet: string; + dhcp: string; + paynet: string; + userfound: boolean; + channel: number; + rcois: string; + encryption: string; + country: string; + region: string; + road: string; + city?: string; + housenumber?: string; + postalcode: string; +} + +export const getLocationForWifi = async ( + mac: string +): Promise => { + try { + console.log(process.env.WIGLE_BASE_URL); + const url = `${process.env.WIGLE_BASE_URL!}${process.env + .WIGLE_NETWORK_SEARCH!}?netid=${encodeURIComponent(mac)}`; + const response = await fetch(url, { + method: "GET", + headers: { + "Content-Type": "application/json", + Cookie: `auth=${process.env.WIGLE_TOKEN}`, + }, + }); + + return await response.json(); + } catch (error) { + console.error("Fehler beim Aufruf des Services:", error); + } +};