1 2 3 /// <summary><para> 4 /// Provides support for ip configuation information and statistics. 5 ///</para></summary> 6 /// 7 namespace System.Net.NetworkInformation{ 8 using System.Net.Sockets; 9 using System; 10 using System.ComponentModel; 11 12 13 14 15 /// <summary>Icmp statistics for IPv4.</summary> 16 internal class SystemIcmpV4Statistics:IcmpV4Statistics { 17 MibIcmpInfo stats; 18 SystemIcmpV4Statistics()19 internal SystemIcmpV4Statistics(){ 20 uint result = UnsafeNetInfoNativeMethods.GetIcmpStatistics(out stats); 21 22 if (result != IpHelperErrors.Success) { 23 throw new NetworkInformationException((int)result); 24 } 25 } 26 27 public override long MessagesSent{get {return stats.outStats.messages;}} 28 public override long MessagesReceived{get {return stats.inStats.messages;}} 29 30 public override long ErrorsSent{get {return stats.outStats.errors;}} 31 public override long ErrorsReceived{get {return stats.inStats.errors;}} 32 33 34 public override long DestinationUnreachableMessagesSent{get {return stats.outStats.destinationUnreachables;}} 35 public override long DestinationUnreachableMessagesReceived{get {return stats.inStats.destinationUnreachables;}} 36 37 public override long TimeExceededMessagesSent{get {return stats.outStats.timeExceeds;}} 38 public override long TimeExceededMessagesReceived{get {return stats.inStats.timeExceeds;}} 39 40 public override long ParameterProblemsSent{get {return stats.outStats.parameterProblems;}} 41 public override long ParameterProblemsReceived{get {return stats.inStats.parameterProblems;}} 42 43 44 public override long SourceQuenchesSent{get {return stats.outStats.sourceQuenches;}} 45 public override long SourceQuenchesReceived{get {return stats.inStats.sourceQuenches;}} 46 47 48 public override long RedirectsSent{get {return stats.outStats.redirects;}} 49 public override long RedirectsReceived{get {return stats.inStats.redirects;}} 50 51 52 public override long EchoRequestsSent{get {return stats.outStats.echoRequests;}} 53 public override long EchoRequestsReceived{get {return stats.inStats.echoRequests;}} 54 55 public override long EchoRepliesSent{get {return stats.outStats.echoReplies;}} 56 public override long EchoRepliesReceived{get {return stats.inStats.echoReplies;}} 57 58 59 public override long TimestampRequestsSent{get {return stats.outStats.timestampRequests;}} 60 public override long TimestampRequestsReceived{get {return stats.inStats.timestampRequests;}} 61 62 public override long TimestampRepliesSent{get {return stats.outStats.timestampReplies;}} 63 public override long TimestampRepliesReceived{get {return stats.inStats.timestampReplies;}} 64 65 public override long AddressMaskRequestsSent{get {return stats.outStats.addressMaskRequests;}} 66 public override long AddressMaskRequestsReceived{get {return stats.inStats.addressMaskRequests;}} 67 68 public override long AddressMaskRepliesSent{get {return stats.outStats.addressMaskReplies;}} 69 public override long AddressMaskRepliesReceived{get {return stats.inStats.addressMaskReplies;}} 70 } 71 72 } 73 74 75