using System;
using System.Diagnostics;
using System.Net.NetworkInformation;
using System.Net.Sockets;
namespace ZeroLevel.Services.Network.Utils
{
///
/// Wireless network.
///
public static class Wireless
{
///
/// Gets a value indicating if wireless network is up.
///
/// true if network is up; otherwise, false.
public static bool IsUp
{
get
{
try
{
foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
{
if (item.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && item.OperationalStatus == OperationalStatus.Up)
{
return true;
}
}
return false;
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
return false;
}
}
}
///
/// Gets the interface name.
///
/// The interface name.
public static string Name
{
get
{
try
{
foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
{
if (item.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && item.OperationalStatus == OperationalStatus.Up)
{
return item.Name;
}
}
return "";
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
return "";
}
}
}
///
/// Gets the Wireless SSID
///
/// The Wireless SSID
public static string SSID
{
get
{
try
{
using (var pr = new Process())
{
pr.StartInfo = new ProcessStartInfo
{
FileName = "iwgetid",
Arguments = "-r",
RedirectStandardOutput = true,
UseShellExecute = false,
};
pr.Start();
return pr.StandardOutput.ReadLine();
}
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
return "";
}
}
}
///
/// Gets the IP address.
///
/// The IP address.
public static string IPAddress
{
get
{
try
{
string output = "";
foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
{
if (item.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && item.OperationalStatus == OperationalStatus.Up)
{
foreach (UnicastIPAddressInformation ip in item.GetIPProperties().UnicastAddresses)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
output = ip.Address.ToString();
}
}
}
}
return output;
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
return "";
}
}
}
}
}