Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / NetworkInformation / SystemIPInterfaceStatistics.cs / 1 / SystemIPInterfaceStatistics.cs
////// namespace System.Net.NetworkInformation { using System.Net.Sockets; using System; using System.ComponentModel; /// /// Provides support for ip configuation information and statistics. /// IP statistics internal class SystemIPv4InterfaceStatistics:IPv4InterfaceStatistics { MibIfRow ifRow = new MibIfRow(); private SystemIPv4InterfaceStatistics(){ } internal SystemIPv4InterfaceStatistics(long index){ GetIfEntry(index); } public override long OutputQueueLength{get {return ifRow.dwOutQLen;}} public override long BytesSent{get {return ifRow.dwOutOctets;}} public override long BytesReceived{get {return ifRow.dwInOctets;}} public override long UnicastPacketsSent{get {return ifRow.dwOutUcastPkts;}} public override long UnicastPacketsReceived{get { return ifRow.dwInUcastPkts;}} public override long NonUnicastPacketsSent{get { return ifRow.dwOutNUcastPkts;}} public override long NonUnicastPacketsReceived{get { return ifRow.dwInNUcastPkts;}} public override long IncomingPacketsDiscarded{get { return ifRow.dwInDiscards;}} public override long OutgoingPacketsDiscarded{get { return ifRow.dwOutDiscards;}} public override long IncomingPacketsWithErrors{get { return ifRow.dwInErrors;}} public override long OutgoingPacketsWithErrors{get { return ifRow.dwOutErrors;}} public override long IncomingUnknownProtocolPackets{get { return ifRow.dwInUnknownProtos;}} internal long Mtu{get { return ifRow.dwMtu;}} internal OperationalStatus OperationalStatus{ get{ switch (ifRow.operStatus) { case OldOperationalStatus.NonOperational: return OperationalStatus.Down; case OldOperationalStatus.Unreachable: return OperationalStatus.Down; case OldOperationalStatus.Disconnected: return OperationalStatus.Dormant; case OldOperationalStatus.Connecting: return OperationalStatus.Dormant; case OldOperationalStatus.Connected: return OperationalStatus.Up; case OldOperationalStatus.Operational: return OperationalStatus.Up; } //state unknow return OperationalStatus.Unknown; } } internal long Speed{get { return ifRow.dwSpeed;}} //This method is used to get information for ipv4 specific interfaces //we should only call this the first time one of the properties //are accessed. void GetIfEntry(long index) { if (index == 0 ) return; ifRow.dwIndex = (uint)index; uint result = UnsafeNetInfoNativeMethods.GetIfEntry(ref ifRow); if (result != IpHelperErrors.Success) { throw new NetworkInformationException((int)result); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. ////// namespace System.Net.NetworkInformation { using System.Net.Sockets; using System; using System.ComponentModel; /// /// Provides support for ip configuation information and statistics. /// IP statistics internal class SystemIPv4InterfaceStatistics:IPv4InterfaceStatistics { MibIfRow ifRow = new MibIfRow(); private SystemIPv4InterfaceStatistics(){ } internal SystemIPv4InterfaceStatistics(long index){ GetIfEntry(index); } public override long OutputQueueLength{get {return ifRow.dwOutQLen;}} public override long BytesSent{get {return ifRow.dwOutOctets;}} public override long BytesReceived{get {return ifRow.dwInOctets;}} public override long UnicastPacketsSent{get {return ifRow.dwOutUcastPkts;}} public override long UnicastPacketsReceived{get { return ifRow.dwInUcastPkts;}} public override long NonUnicastPacketsSent{get { return ifRow.dwOutNUcastPkts;}} public override long NonUnicastPacketsReceived{get { return ifRow.dwInNUcastPkts;}} public override long IncomingPacketsDiscarded{get { return ifRow.dwInDiscards;}} public override long OutgoingPacketsDiscarded{get { return ifRow.dwOutDiscards;}} public override long IncomingPacketsWithErrors{get { return ifRow.dwInErrors;}} public override long OutgoingPacketsWithErrors{get { return ifRow.dwOutErrors;}} public override long IncomingUnknownProtocolPackets{get { return ifRow.dwInUnknownProtos;}} internal long Mtu{get { return ifRow.dwMtu;}} internal OperationalStatus OperationalStatus{ get{ switch (ifRow.operStatus) { case OldOperationalStatus.NonOperational: return OperationalStatus.Down; case OldOperationalStatus.Unreachable: return OperationalStatus.Down; case OldOperationalStatus.Disconnected: return OperationalStatus.Dormant; case OldOperationalStatus.Connecting: return OperationalStatus.Dormant; case OldOperationalStatus.Connected: return OperationalStatus.Up; case OldOperationalStatus.Operational: return OperationalStatus.Up; } //state unknow return OperationalStatus.Unknown; } } internal long Speed{get { return ifRow.dwSpeed;}} //This method is used to get information for ipv4 specific interfaces //we should only call this the first time one of the properties //are accessed. void GetIfEntry(long index) { if (index == 0 ) return; ifRow.dwIndex = (uint)index; uint result = UnsafeNetInfoNativeMethods.GetIfEntry(ref ifRow); if (result != IpHelperErrors.Success) { throw new NetworkInformationException((int)result); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlAttributeCollection.cs
- EventRoute.cs
- Label.cs
- FrameworkContentElement.cs
- DataStorage.cs
- Cursors.cs
- DataGridViewCellParsingEventArgs.cs
- DoubleCollection.cs
- RangeContentEnumerator.cs
- FontCollection.cs
- IsolatedStorageFilePermission.cs
- CodeAccessPermission.cs
- QueryExecutionOption.cs
- ConnectionsZone.cs
- PriorityBinding.cs
- FieldNameLookup.cs
- CodeArrayIndexerExpression.cs
- Html32TextWriter.cs
- WeakReadOnlyCollection.cs
- ValidationPropertyAttribute.cs
- ZoneButton.cs
- XmlCDATASection.cs
- XmlSchemaProviderAttribute.cs
- _UriTypeConverter.cs
- Ipv6Element.cs
- BlockExpression.cs
- PowerStatus.cs
- ArraySegment.cs
- SmtpException.cs
- DelegateTypeInfo.cs
- ChildrenQuery.cs
- RepeatInfo.cs
- SafePipeHandle.cs
- GridViewColumnCollection.cs
- XmlHierarchicalEnumerable.cs
- ExpressionPrefixAttribute.cs
- Assembly.cs
- ProxyWebPart.cs
- Region.cs
- DataGridViewTextBoxColumn.cs
- Aggregates.cs
- SpanIndex.cs
- WebPartUtil.cs
- EditingScopeUndoUnit.cs
- DataMember.cs
- LinqDataSourceDisposeEventArgs.cs
- ProcessHostServerConfig.cs
- BuildDependencySet.cs
- QuadraticEase.cs
- LambdaCompiler.Address.cs
- CategoryNameCollection.cs
- XmlSchemaNotation.cs
- VScrollProperties.cs
- ZoneButton.cs
- GenericAuthenticationEventArgs.cs
- mansign.cs
- TextAdaptor.cs
- DBConnection.cs
- RIPEMD160Managed.cs
- ClientCultureInfo.cs
- ParameterCollection.cs
- SurrogateDataContract.cs
- CryptoApi.cs
- AssemblyCache.cs
- BypassElement.cs
- TextSpan.cs
- TagPrefixInfo.cs
- SystemIPInterfaceProperties.cs
- TraceContextRecord.cs
- ProfileBuildProvider.cs
- QilIterator.cs
- BinaryFormatterWriter.cs
- Facet.cs
- StaticTextPointer.cs
- ColorMatrix.cs
- FontStyleConverter.cs
- XmlAtomicValue.cs
- BitmapData.cs
- FixedSOMLineRanges.cs
- AccessibleObject.cs
- SqlConnectionHelper.cs
- FilteredAttributeCollection.cs
- FindCriteria11.cs
- String.cs
- XmlRawWriterWrapper.cs
- WebHttpSecurityModeHelper.cs
- EnumBuilder.cs
- MachineKeyValidationConverter.cs
- Tokenizer.cs
- AppearanceEditorPart.cs
- ReverseComparer.cs
- ToolStripPanel.cs
- PropertyDescriptorCollection.cs
- BamlLocalizableResourceKey.cs
- ChangesetResponse.cs
- EventlogProvider.cs
- AmbientProperties.cs
- Axis.cs
- AuthenticatingEventArgs.cs
- ReturnValue.cs