C#中判斷本地系統(tǒng)的網(wǎng)絡連接狀態(tài)的方法
更新時間:2013年10月09日 16:49:37 作者:
C#中一般通過InternetGetConnectedState函數(shù)返回本地系統(tǒng)的網(wǎng)絡連接狀態(tài),下面簡單介紹下,需要的朋友可以參考下
函數(shù)InternetGetConnectedState返回本地系統(tǒng)的網(wǎng)絡連接狀態(tài)。
語法:
BOOL InternetGetConnectedState(
__out LPDWORD lpdwFlags,
__in DWORD dwReserved
);
參數(shù):
lpdwFlags[out]
指向一個變量,該變量接收連接描述內(nèi)容。該參數(shù)在函數(shù)返回FLASE時仍可以返回一個有效的標記。該參數(shù)可以為下列值的一個或多個。
值 |
含義 |
---|---|
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。
當該函數(shù)返回false時,程序可以調(diào)用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 ")]
//聲明外部的函數(shù):
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();
}
}
}
截圖:

復制代碼 代碼如下:
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 ")]
//聲明外部的函數(shù):
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#使用XmlDocument或XDocument創(chuàng)建xml文件
這篇文章主要為大家詳細介紹了C#使用XmlDocument或XDocument創(chuàng)建xml文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10C#中字段、屬性、只讀、構(gòu)造函數(shù)賦值、反射賦值的問題
這篇文章主要介紹了C#中字段、屬性、只讀、構(gòu)造函數(shù)賦值、反射賦值的問題 ,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下2018-08-08C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn)
在我們的圖像類型教程中定義了RGB顏色模型和灰度格式,本文主要介紹了C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn),文中通過代碼介紹的非常清楚,具有一定的參考價值,感興趣的可以了解一下2023-08-08C#使用this關鍵字實現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法
這篇文章主要介紹了C#使用this關鍵字實現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法,實例分析了使用this關鍵字串聯(lián)構(gòu)造函數(shù)的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-01-01C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法
這篇文章主要介紹了C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法,以實例形式較為詳細的分析了C#保存圖片到SQL Server數(shù)據(jù)庫的具體步驟與相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法
這篇文章主要介紹了C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11C# 關于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決
這篇文章主要介紹了C# 關于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決,幫助大家更好的理解和學習c#,感興趣的朋友可以了解下2021-01-01