C#中判断本地系统的网络连接状态的方法
发布时间:2023-07-02 15:39:41
函数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();
}
}
}
猜你喜欢
- 本文实例讲述了C#实现对文件进行加密解密的方法。分享给大家供大家参考。具体如下:using System;using System.IO;u
- 前言在手写sql的时候,根据参数处理查询条件.select * from staff where 1 = 1 and staff_id in
- Maven --> Gradle首先安装gradle:Mac安 * rew install gradleUbuntu安装apt inst
- 本文实例讲述了Java基于IO流读取文件的方法。分享给大家供大家参考,具体如下:public static void readFile(){
- 前文本章是关于Java流程控制语句的最全汇总,本篇为汇总上篇。流程是人们生活中不可或缺的一部分,它表示人们每天都在按照一定的流程做事。比如出
- 项目中有几个batch需要检查所有的用户参与的活动的状态,以前是使用分页,一页一页的查出来到内存再处理,但是随着数据量的增加,效率越来越低。
- 先来看看效果:测试一:原图:效果图:测试二:原图:效果图:代码部分:/** * */ package com.b510; import ja
- RabbitMQ作为AMQP的代表性产品,在项目中大量使用。结合现在主流的spring boot,极大简化了开发过程中所涉及到的消息通信问题
- ArrayList线程不安全怎么办?有三种解决方法:使用对应的 Vector 类,这个类中的所有方法都加上了 synchronized 关键
- 1.首先,八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char; &
- Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。
- 引导语上一小节我们学习了 Socket,本文我们来看看服务端套接字 API:ServerSocket,本文学习完毕之后,我们就可以把客户端
- 原始Spring开发Person.java准备Person.java类:package com.jektong.spring;public
- 基于有了OO的基础后,开始认真学习设计模式!设计模式是java设计中必不可少的!Apple.javapackage strategy;/**
- Bean的生命周期解释(1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某
- 本文实例为大家分享了java实现简单单链表的具体代码,供大家参考,具体内容如下一、定义:单链表是一种链式存取的数据结构,用一组地址任意的存储
- 前言Java的StringUtil.isEmpty(str)和"".equals(str)都是用来判断字符串是否为空的方
- 无论是我们在使用word还是记事本,系统都会为我们提供撤销的功能,这几乎是人人都会使用到的功能,而在我们实际开发中,会不会存在一个很复杂的对
- 什么是委托?之前写了事件的介绍:https://www.jb51.net/article/59461.htm这里也把委托相关知识也总结一下。
- 1.ACSII码加密//ACSII码加密 private static string