Exemple #1
0
        public async Task <string[]> GetNearbyNetworks()
        {
            var(exitCode, output, errorOutput) = await processProxy.ExecuteShellCommand("iw", "dev", "wlan1", "scan");

            if (exitCode != 0)
            {
                throw new Exception("iw command failed in GetNearbyNetworks: " + errorOutput);
            }

            var lines = output.Split(Environment.NewLine);

            var networkNames = lines
                               .Where(line => line.Contains("SSID:"))
                               .Select(line => line.Split(new[] { "SSID:" }, StringSplitOptions.None)[1])
                               .Where(ssid => ssid.Length < 20)
                               .Distinct()
                               .ToArray();

            return(networkNames);
        }