private StringBuilder CreateCsvReport(WiFiPointData wifiPoint) { StringBuilder networkInfo = new StringBuilder(); networkInfo.AppendLine("MAC,SSID,SignalBars,Type,Lat,Long,Accuracy,Encryption"); foreach (var wifiSignal in wifiPoint.WiFiSignals) { networkInfo.Append($"{wifiSignal.MacAddress},"); networkInfo.Append($"{wifiSignal.Ssid},"); networkInfo.Append($"{wifiSignal.SignalBars},"); networkInfo.Append($"{wifiSignal.NetworkKind},"); networkInfo.Append($"{wifiPoint.Latitude},"); networkInfo.Append($"{wifiPoint.Longitude},"); networkInfo.Append($"{wifiPoint.Accuracy},"); networkInfo.Append($"{wifiSignal.Encryption}"); networkInfo.AppendLine(); } return(networkInfo); }
private async Task <StringBuilder> RunWifiScan() { await this._wifiScanner.ScanForNetworks(); Geolocator geolocator = new Geolocator(); Geoposition position = await geolocator.GetGeopositionAsync(); WiFiNetworkReport report = this._wifiScanner.WiFiAdapter.NetworkReport; var wifiPoint = new WiFiPointData() { Latitude = position.Coordinate.Point.Position.Latitude, Longitude = position.Coordinate.Point.Position.Longitude, Accuracy = position.Coordinate.Accuracy, TimeStamp = position.Coordinate.Timestamp }; foreach (var availableNetwork in report.AvailableNetworks) { WiFiSignal wifiSignal = new WiFiSignal() { MacAddress = availableNetwork.Bssid, Ssid = availableNetwork.Ssid, SignalBars = availableNetwork.SignalBars, ChannelCenterFrequencyInKilohertz = availableNetwork.ChannelCenterFrequencyInKilohertz, NetworkKind = availableNetwork.NetworkKind.ToString(), PhysicalKind = availableNetwork.PhyKind.ToString(), Encryption = availableNetwork.SecuritySettings.NetworkEncryptionType.ToString() }; wifiPoint.WiFiSignals.Add(wifiSignal); } StringBuilder networkInfo = CreateCsvReport(wifiPoint); return(networkInfo); }