• 实时检测网络状态及是否可以连接Internet


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net.NetworkInformation;
    using System.Runtime.InteropServices;
    namespace NetWork
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
                NetworkChange.NetworkAddressChanged+=new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
            }
            public void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
            {
                NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
                foreach (NetworkInterface n in adapters)
                {
                    if(n.NetworkInterfaceType!= NetworkInterfaceType.Loopback)
                        Console.WriteLine("Changed   {0} is {1}", n.Name, n.OperationalStatus);
                }
                Console.WriteLine("NetState  :  " + NetState());
            }
            public void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
            {           
                Console.WriteLine("IsAvailable  :  "+e.IsAvailable);
                Console.WriteLine("NetState  :  " + NetState());
               
            }

            [DllImport("wininet.dll")]
            public static extern bool InternetGetConnectedState(out long lpdwFlags, long dwReserved);

            public static bool NetState()
            {
                //string url = http://www.baidu.com/;
                //if (url.StartsWith("http://")) url = url.Remove(0, "http://".length/);
                //try
                //{
                //    System.Net.IPHostEntry ipHost = System.Net.Dns.GetHostEntry(url);// System.Net.Dns.Resolve(url);
                //    return true;
                //}
                //catch //(System.Net.Sockets.SocketException se)
                //{
                //    //System.Diagnostics.Trace.Write(se.Message);
                //    return false;
                //}
                try
                {
                    long lfag;
                    if (InternetGetConnectedState(out lfag, 0))
                    {                  
                        return true;  
                    }
                    return false;
                }
                catch
                {
                    return false;
                }
            }

          }
    }

  • 相关阅读:
    实现tip浮层
    c++实现冒泡排序
    一天一小段js代码(no.4)
    html5 css3实现图中结构
    html表格相关
    js跨浏览器的事件处理函数
    js实现DOM结构
    CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
    正则表达式学习笔记
    使用JS与CSS3的翻转实现3D翻牌效果
  • 原文地址:https://www.cnblogs.com/94cool/p/1546286.html
Copyright © 2020-2023  润新知