检查网络是否ping通
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; using System.Net.NetworkInformation; namespace FQ.Core { public class NetStatusCheck { public static string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; // 要发送的数据 public static async Task<PingReply> CheckAsync(string ip) { Ping pingSender = new Ping(); PingOptions options = new PingOptions(); // Use the default Ttl value which is 128, // but change the fragmentation behavior. options.DontFragment = true; // Create a buffer of 32 bytes of data to be transmitted. //string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; byte[] buffer = Encoding.ASCII.GetBytes(data); int timeout = 120; Task<PingReply> tPing = Task.Run<PingReply>(() => pingSender.Send(ip, timeout, buffer, options)); PingReply reply = await tPing; return reply; //PingReply reply = pingSender.Send(ip, timeout, buffer, options); //if (reply.Status == IPStatus.Success) //{ // Console.WriteLine("Address: {0}", reply.Address.ToString()); // Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime); // Console.WriteLine("Time to live: {0}", reply.Options.Ttl); // Console.WriteLine("Don't fragment: {0}", reply.Options.DontFragment); // Console.WriteLine("Buffer size: {0}", reply.Buffer.Length); //} } public static async Task<bool> CheckAsync2(string ip) { Ping pingSender = new Ping(); PingOptions options = new PingOptions(); // Use the default Ttl value which is 128, // but change the fragmentation behavior. options.DontFragment = true; // Create a buffer of 32 bytes of data to be transmitted. //string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; byte[] buffer = Encoding.ASCII.GetBytes(data); int timeout = 120; Task<PingReply> tPing = Task.Run<PingReply>(() => pingSender.Send(ip, timeout, buffer, options)); PingReply reply = await tPing;// tPing.GetAwaiter().GetResult(); return reply.Status == IPStatus.Success; } public static bool Check(string ip) { Ping pingSender = new Ping(); PingOptions options = new PingOptions(); // Use the default Ttl value which is 128, // but change the fragmentation behavior. options.DontFragment = true; // Create a buffer of 32 bytes of data to be transmitted. //string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; byte[] buffer = Encoding.ASCII.GetBytes(data); int timeout = 120; PingReply reply = pingSender.Send(ip, timeout, buffer, options); return reply.Status == IPStatus.Success; } } }
posted on 2024-03-27 12:46 qq1151219115 阅读(13) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗