当前位置: 首页 > news >正文

c# 判断是否连接公网

有一个需求,软件需要在连接公网的状态下才能使用,否则弹出提示

我们判断一下网络不通情况

1.系统未开启网络:例如关掉了WIFI,拔掉网线

2.网络已连接无internet:连接了路由器,但路由器未连接外网

对于以上两种情况:

1.首先可以使用一下代码,来判断系统是否开启网络

System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()

2.可以使用ping命令,测试是否能达到目标主机进而判断是否连接了外网

    string host = "www.baidu.com";//测试主机,根据自己需求随意填PingReply reply = null;Ping ping = new Ping();try {reply = ping.Send(host);}catch (Exception e) {if (e.Message != "") {return false;}}if (reply.Status == IPStatus.Success) {return true;//网络正常,可以访问host主机}else {return false;//无法访问网络}

这里的ping命令,在路由器没网的情况会报错,用try包裹,如果报错,直接抛出网络未连接即可

那么对于主机,想仅判断局域网内某192.168.X.X 的Host是否连通也可以,这样就从判断是否连接外网到判断是否连接内网某主机或vlan

完整的验证代码如下:

public static bool CheckWebIsConnected() {//首先验证,系统级的,wifi或者网络底层配置,是否开启bool isSystemNetConnect = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();if (!isSystemNetConnect) {return false;//系统级就没给网,直接返回false}//如果系统级开启了网络,例如连接了路由器,但路由器内没网//使用ping测试主机string host = "www.baidu.com";PingReply reply = null;Ping ping = new Ping();try {reply = ping.Send(host);}catch (Exception e) {if (e.Message != "") {return false;}}if (reply.Status == IPStatus.Success) {return true;//网络正常,可以访问host主机}else {return false;//无法访问网络}}


 

http://www.lryc.cn/news/255479.html

相关文章:

  • unity 2d 入门 飞翔小鸟 场景延续(八)
  • scrapy介绍,并创建第一个项目
  • Rust语言项目实战(九 - 完结) - 胜利与失败
  • 【Linux系统编程】项目自动化构建工具make/Makefile
  • harmony开发之Text组件的使用
  • using meta-SQL 使用元SQL 六
  • 如何将浮点数点左边的数每三位添加一个逗号,如 12000000.11 转化为『12,000,000.11』
  • 朴素贝叶斯 贝叶斯方法
  • 探索鸿蒙 TextInput组件
  • CNN,DNN,RNN,GAN,RL+图像处理常规算法(未完待续)
  • C# 语法笔记
  • el-table 表格多选(后端接口搜索分页)实现已选中的记忆功能。实现表格数据和已选数据(前端分页)动态同步更新。
  • Vue3自定义Hooks定义
  • 为什么Java程序员需要掌握多线程?揭秘并发编程的奥秘
  • 数组实现循环队列(新增一个空间)
  • Mysql 索引概念回顾
  • 基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)
  • Hadoop集群破坏试验可靠性验证
  • Notepad++ 安装TextFx插件失败
  • 探究Logistic回归:用数学解释分类问题
  • 杨辉三角
  • MS5228/5248/5268:2.7V 到 5.5V、 12/14/16Bit、内置基准、八通道数模转换器
  • 2024年江苏省职业院校技能大赛 信息安全管理与评估 第二阶段教师组 (样卷)
  • 最新版IDEA专业版大学生申请免费许可证教学(无需学校教育邮箱+官方途径+非破解手段)
  • zookeeper常用接口
  • scipy笔记:scipy.interpolate.interp1d
  • 外包干了一个月,技术明显进步。。。。。
  • docker安装node及使用
  • 要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 18 章:对抗性提示
  • 若依框架的搭建