C#中判断本地系统的网络连接状态的方法

函数InternetGetConnectedState返回本地系统的网络连接状态。

语法:

BOOL InternetGetConnectedState(

__out LPDWORD lpdwFlags,

__in DWORD dwReserved

);

参数:

lpdwFlags[out]

指向一个变量,该变量接收连接描述内容。该参数在函数返回FLASE时仍可以返回一个有效的标记。该参数可以为下列值的一个或多个。



























含义

INTERNET_CONNECTION_CONFIGURED0x40

Local system has a valid connection to the Internet, but it might or might not be currently connected.

INTERNET_CONNECTION_LAN 0x02

Local system uses a local area network to connect to the Internet.

INTERNET_CONNECTION_MODEM0x01

Local system uses a modem to connect to the Internet.

INTERNET_CONNECTION_MODEM_BUSY0x08

No longer used.

INTERNET_CONNECTION_OFFLINE 0x20

Local system is in offline mode.

INTERNET_CONNECTION_PROXY0x04

Local system uses a proxy server to connect to the Internet.

INTERNET_RAS_INSTALLED0x10

Local system has RAS installed.

dwReserved[in]

保留值。必须为0。

返回值:

当存在一个modem或一个LAN连接时,返回TRUE,当不存在internet连接或所有的连接当前未被激活时,返回false。

当该函数返回false时,程序可以调用GetLastError来接收错误代码。

示例:

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        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 static extern bool InternetGetConnectedState(
            ref  int Flag,
            int dwReserved
        );

static void Main(string[] args)
        {
            int Flag = 0;

string netStates = "";

if (!InternetGetConnectedState(ref Flag, 0))
            {
                Console.WriteLine("no!");
            }
            else
            {

if ((Flag & INTERNET_CONNECTION_MODEM) != 0)

netStates += " Connect by MODEM /n";

if ((Flag & INTERNET_CONNECTION_LAN) != 0)

netStates += "Connect by LAN  /n";

if ((Flag & INTERNET_CONNECTION_PROXY) != 0)

netStates += "Connect by PROXY /n";

if ((Flag & INTERNET_CONNECTION_MODEM_BUSY) != 0)

netStates += " MODEM is busy  /n";

}

Console.WriteLine(netStates);
            Console.ReadLine();
        }
    }
}

截图:

(0)

相关推荐

  • 基于JQuery的数字改变的动画效果--可用来做计数器

    因为要求是动态的,我就想到了应该是位置的变化,想到之前用过的JQuery,把里边的效果全试了试,最后选用了animate自定义,代码如下: 复制代码 代码如下: <html> <head> <title>testAnimate</title> <script type="text/javascript"> function changeNum(n) { //n设为想要改成的数字 $(function () { $("

  • c#判断网络连接状态

    运行效果 复制代码 代码如下: using System;using System.Collections.Generic;using System.Text;using System.Net.NetworkInformation; namespace ConsoleApplication1{    class Program    {        public static void Main(string[] args)        {            string url = "

  • c#判断网络连接状态的示例分享

    复制代码 代码如下: public partial class Form1 : Form { [DllImport("wininet.dll")] private extern static bool getInterState(out int conn, int val); public Form1()  {InitializeComponent();  getNet(); } //判断当前是否连接入Internet网络private void getNet(){int Out;if

  • 一个简单的网站访问JS计数器 刷新1次加1次访问

    复制代码 代码如下: <script language="JavaScript"><!-- var caution = falsefunction setCookie(name, value, expires, path, domain, secure) {        var curCookie = name + "=" + escape(value) +                ((expires) ? "; expires=

  • C# ping网络IP 实现网络状态检测的方法

    C# ping网络IP 实现网络状态检测的方法 public string GetHostNameByIp(string ip)  {  ip = ip.Trim();  if (ip == string.Empty)  return string.Empty;  try  {  // 是否 Ping 的通  if (this.Ping(ip))  {  System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry(ip);  return 

  • php计数器的设计与实现第1/2页

    本程序有4个计数器. index.php是一个普通的计数器可以看出总次数和哪个人来这个站点的次数,点几次加几次,不防水. index1.php也是一个防水的计数器可以看出次数和哪个人来这个站点的次数,点几次加几次,防水,5秒加一次. index2.php是一个防水的计数器可以看出总次数和哪个人来这个站点的次数,点几次加几次,防水,2秒加一次. indexa.php是一个普通和防水和图形的计数器3合一的.可以看出总次数和哪个人来这个站点的次数,防水,有图形. 关键语句: 防水的:$sql = "S

  • Redis的使用模式之计数器模式实例

    Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.打算写一系列 Redis 使用模式的文章,深入总结介绍 Redis 常见的使用模式,以供大家参考. 常见汇总计数器 汇总计数是系统常见功能,比如网站通常需要统计注册用户数,网站总浏览次数等等. 使用 Redis 提供的基本数据类型就能实现汇总计数器,通过 incr 命令实现增加操作. 比如注册用户数,基本操作命令如下: 复制代码 代码如下: # 获取注册用户数

  • PHP计数器的实现代码

    复制代码 代码如下: <?php/*使用文本文件记录数据的简单实现*/$counter=1;if(file_exists("mycounter.txt")){$fp=fopen("mycounter.txt","r");$counter=fgets($fp,9);$counter++;fclose($fp);}$fp=fopen("mycounter.txt","w");fputs($fp,$coun

  • js计数器代码

    复制代码 代码如下: <script Language="javascript">  var seconds = 10;//记数时间  var handle;//事件柄 //开始记数器  function startTimer() {   handle = setInterval("timer()",1000);  } //结束记数器  function stopTimer() {   clearInterval(handle);   seconds =

  • C#利用性能计数器监控网络状态

    本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器组件.NextValue() 即获取计数器样本并为其返回计算所得值.PerformanceCounterCategory 表示性能对象,它定义性能计数器的类别.通过这两个即可得到计数器的信息. Chart 图表,VS自带的Chart图表,大大简化了对图表的开发.关于Chart,此前已有例子说明. Q

随机推荐