博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#判断本地系统的网络连接状态
阅读量:6852 次
发布时间:2019-06-26

本文共 2435 字,大约阅读时间需要 8 分钟。

函数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();        }    }}

 

截图:

 

 

 

转载于:https://www.cnblogs.com/GaoHuhu/archive/2013/06/03/3114950.html

你可能感兴趣的文章
jqGrid的若干种用法
查看>>
电子书资源分享
查看>>
Java第二次实验
查看>>
Tomcat数据源总结
查看>>
MongoDB分片实战(一):集群搭建
查看>>
Struts2 原理
查看>>
prepareCall方法执行存储过程
查看>>
更新UI放在主线程的原因
查看>>
Django框架----数据库表的单表查询
查看>>
机器学习实战4:Adaboost提升:病马实例+非均衡分类问题
查看>>
事件管理器
查看>>
深入学习jQuery节点关系
查看>>
分享一个德州扑克的算法
查看>>
技术普及帖:你刚才在淘宝上买了一件东西
查看>>
全排列 UVA 11525 Permutation
查看>>
进程隐藏与进程保护(SSDT Hook 实现)(一)
查看>>
LOJ6346:线段树:关于时间 ——题解
查看>>
2.jeesite增删改查
查看>>
1.Dubbo教程
查看>>
Shell 在手分析服务器日志不愁
查看>>