private const int INTERNET_CONNECTION_MODEM = 1;
private const int INTERNET_CONNECTION_LAN = 2;
private const int INTERNET_CONNECTION_PROXY = 4;
private const int INTERNET_CONNECTION_MODEM_BUSY = 8;
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);
/// <summary>
/// 检测用户计算机是否已连接网络
/// </summary>
/// <returns></returns>
public static bool IsOnLine()
{
try
{
var netstatus = string.Empty;
var connection = 0;
if (!InternetGetConnectedState(out connection, 0)) return false;
if ((connection & INTERNET_CONNECTION_PROXY) != 0)
netstatus += " 采用代理上网 \n";
if ((connection & INTERNET_CONNECTION_MODEM) != 0)
netstatus += " 采用调治解调器上网 \n";
if ((connection & INTERNET_CONNECTION_LAN) != 0)
netstatus += " 采用网卡上网 \n";
if ((connection & INTERNET_CONNECTION_MODEM_BUSY) != 0)
netstatus += " MODEM被其他非INTERNET连接占用 \n";
Console.WriteLine(netstatus);
return true;
}
catch (Exception)
{
return false;
}
}