public override void HandlePacket(RadioPacket packet, ProbeRequestFrame pr) { var signal = packet[RadioTapType.DbmAntennaSignal]; var ssidObj = pr.InformationElements.First(ie => ie.Id.ToString() == "ServiceSetIdentity"); var ssid = Encoding.UTF8.GetString(ssidObj.Value, 0, ssidObj.ValueLength).Trim(); if (string.IsNullOrWhiteSpace(ssid)) { return; } var dbs = signal.ToString().Split(' ', StringSplitOptions.TrimEntries)[1]; var db = int.Parse(dbs); var output = $"{DateTime.Now},Probe,{pr.SourceAddress},{ssid},{Helper.DbToPercent(db)}"; if (ProbeCache.UpdateCache(ssid, pr.SourceAddress.ToString(), Helper.DbToPercentInt(db))) { var mac = new WiFiMac { MAC = pr.SourceAddress.ToString() }; var probe = new WiFiProbe { LastSeen = DateTime.Now, WiFiMac = mac, WiFiNetworkName = new WiFiNetworkName { SSID = ssid } }; ApiQueue.QueueItem(probe); Log(output); } }
public async Task <bool> SubmitProbe(WiFiProbe probe) { try { var response = await HttpClient.PutAsync($"{ENDPOINT}/wifi/probe", ToJsonContent(probe)); if (response.StatusCode != HttpStatusCode.OK) { return(false); } var dto = await response.Content.ReadAsStringAsync(); Console.WriteLine(dto); return(true); } catch { return(false); } }