C#检测本地网络状态

时间:2021-01-05 15:19:33
using System;
using System.Runtime.InteropServices;

public static class NetTool
{
    [Flags]
    private enum ConnectionState
    {
        INTERNET_CONNECTION_MODEM = 0x1,
        INTERNET_CONNECTION_LAN = 0x2,
        INTERNET_CONNECTION_PROXY = 0x4,
        INTERNET_RAS_INSTALLED = 0x10,
        INTERNET_CONNECTION_OFFLINE = 0x20,
        INTERNET_CONNECTION_CONFIGURED = 0x40
     }

    [DllImport("wininet.dll", CharSet = CharSet.Auto)]
    static extern bool InternetGetConnectedState(ref ConnectionState lpdwFlags, int dwReserved);

    public static bool IsConnectedToInternet()
    {
        ConnectionState description = 0;
        bool conn = InternetGetConnectedState(ref description, 0);
        return conn;
    }
}