网络连接检测
来源:互联网 发布:开淘宝店需要交费吗 编辑:程序博客网 时间:2024/05/17 08:44
网络连接检测
1、ping的方式
2、[DllImport("winInet.dll ")]的方式
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Net.Sockets;namespace MyNetConnect{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int step = 0; bool bIsConnectNet = IsConn2(); textBox1.Text += step.ToString() + ": "+bIsConnectNet.ToString() + System.Environment.NewLine; } /// <summary> /// 用ping的返回值来测试有没有网络 /// 缺点:百度断网了就不行用了 /// </summary> /// <example> /// ping具体IP地址如"192.168.88.7",可以用来检测局域网连接 /// ping不通卡大约4.6-5s /// </example> /// <returns></returns> public bool IsConn() { System.Net.NetworkInformation.Ping ping=new System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.PingReply res; try { //局域网 //string RemoteLAN = textBox2.Text;//"192.168.88.7" //res = ping.Send(RemoteLAN); string RemoteUrl = "www.baidu.com"; res = ping.Send(RemoteUrl); if (res.Status != System.Net.NetworkInformation.IPStatus.Success) return false; else return true; } catch (Exception er) { return false; } } //InternetGetConnectedState返回的状态标识位的含义: 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 dwFlag, int dwReserved); /// <summary> /// 使用InternetGetConnectedState () 函数 /// 这个win32 API 在系统 system32 文件夹中 winInet.dll 中 ,可以用来判断是否联网和上网的方式是 Modem 还是 LAN 等 /// </summary> /// <returns></returns> private bool IsConn2() { int dwFlag = 0; string netstatus = ""; if (!InternetGetConnectedState(ref dwFlag, 0)) textBox1.Text += "未联网!" + Environment.NewLine; //Console.WriteLine("未联网!"); else { if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0) { netstatus += " 采用调治解调器上网 \n"; return true; } if ((dwFlag & INTERNET_CONNECTION_LAN) != 0) { netstatus += " 采用网卡上网 \n"; return true; } if ((dwFlag & INTERNET_CONNECTION_PROXY) != 0) { netstatus += " 采用代理上网 \n"; return true; } if ((dwFlag & INTERNET_CONNECTION_MODEM_BUSY) != 0) { netstatus += " MODEM被其他非INTERNET连接占用 \n"; return false; } textBox1.Text += netstatus + Environment.NewLine; } return false; } }}
阅读全文
0 0
- 检测网络连接
- 如何检测网络连接?
- 检测网络连接
- ios网络连接检测
- Reachability 检测网络连接
- 检测网络连接状态
- 检测网络连接状态
- android 网络连接检测
- Reachability 检测网络连接
- C#检测网络连接
- Android检测网络连接
- iOS 检测网络连接
- 检测网络是否连接
- 网络连接检测
- C# 示例:检测网络连接
- 利用BackgroundWorker检测网络连接
- 检测网络是否连接正常
- Android 检测网络连接状态
- hdu1061 rightmost digit(C语言)
- Android BroadcastReceiver的注册
- 位、字节、字、kb的关系
- svg transform matrix
- 【转】升级nodejs版本
- 网络连接检测
- Java基础学习总结——Java对象的序列化和反序列化
- 扩展阅读 基于太极图对攻防进行建模
- <context:component-scan>使用说明
- 字符编码及其转换
- Wireshark & tcpdump
- Python selenium 三种等待方式
- linux中运行jar文件并写入日志
- 算法训练 6-2递归求二进制表示位数