Ping及相关类

作者:追风剑情 发布于:2019-11-12 19:41 分类:C#

示例

  1. using System;
  2. using System.Net;
  3. using System.Net.NetworkInformation;
  4. using System.Text;
  5.  
  6. namespace ConsoleApp6
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Ping pingSender = new Ping();
  13. PingOptions options = new PingOptions();
  14. //true: 数据包不分片
  15. //不能分片的情况下如果发送的数据包超过MTU,则发送失败
  16. options.DontFragment = true;
  17. //TTL是 Time To Live的缩写,
  18. //该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,默认128
  19. options.Ttl = 128;
  20.  
  21. //要发送的数据
  22. string data = "aaaaaaaaaaaa";
  23. //数组不能超过 65500 个字节
  24. byte[] buffer = Encoding.ASCII.GetBytes(data);
  25. int timeout = 120;//超时时间,单位:毫秒
  26. //ping网络IP地址为192.168.1.103的主机
  27. PingReply reply = pingSender.Send("192.168.1.103", timeout, buffer, options);
  28. //pingSender.SendAsync();//异步方法
  29. if (reply.Status == IPStatus.Success)
  30. {
  31. //目标主机IP地址
  32. Console.WriteLine("Address: {0}", reply.Address.ToString());
  33. //获取发送消息并得到答复的往返时间
  34. Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime);
  35. //被路由器转发次数
  36. Console.WriteLine("Time to live: {0}", reply.Options.Ttl);
  37. //IP数据包是否分片
  38. Console.WriteLine("Don't fragment: {0}", reply.Options.DontFragment);
  39. //发送消息的数据缓冲区大小
  40. Console.WriteLine("Buffer size: {0}", reply.Buffer.Length);
  41. }
  42. else
  43. Console.WriteLine("目标主机Ping失败 Status={0}", reply.Status.ToString());
  44.  
  45. Console.ReadLine();
  46. }
  47. }
  48. }

运行测试

11111.png

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号