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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StylusTip.cs
- DurableInstanceProvider.cs
- DownloadProgressEventArgs.cs
- PointF.cs
- ExceptionUtility.cs
- SystemException.cs
- DispatcherExceptionEventArgs.cs
- LabelDesigner.cs
- FormsAuthentication.cs
- LocationSectionRecord.cs
- SQLInt32Storage.cs
- FixedSOMPage.cs
- LinqToSqlWrapper.cs
- DataColumnChangeEvent.cs
- ControlCodeDomSerializer.cs
- SymbolDocumentInfo.cs
- VersionPair.cs
- GroupedContextMenuStrip.cs
- DiscoveryDocumentLinksPattern.cs
- SafeThreadHandle.cs
- CreateUserWizard.cs
- PopupRoot.cs
- PeerUnsafeNativeCryptMethods.cs
- SmtpSection.cs
- WebHeaderCollection.cs
- SystemIPAddressInformation.cs
- CachedPathData.cs
- CompositionTarget.cs
- Connector.cs
- SingleQueryOperator.cs
- RenderDataDrawingContext.cs
- StylusCaptureWithinProperty.cs
- GroupBoxRenderer.cs
- UserControlCodeDomTreeGenerator.cs
- ZoneButton.cs
- ZipIOLocalFileHeader.cs
- IIS7UserPrincipal.cs
- SystemWebCachingSectionGroup.cs
- EntityAdapter.cs
- ErrorEventArgs.cs
- DockAndAnchorLayout.cs
- RequestBringIntoViewEventArgs.cs
- DesignerDataTableBase.cs
- FontWeights.cs
- ClassHandlersStore.cs
- ScriptControlDescriptor.cs
- DbProviderSpecificTypePropertyAttribute.cs
- CheckoutException.cs
- SelectorItemAutomationPeer.cs
- BitmapEffectState.cs
- HtmlControl.cs
- OdbcCommandBuilder.cs
- ConfigurationProperty.cs
- TextServicesLoader.cs
- ConfigurationElementCollection.cs
- COM2TypeInfoProcessor.cs
- CalendarDayButton.cs
- TextAction.cs
- SecurityPolicySection.cs
- Message.cs
- SqlDataAdapter.cs
- Transform.cs
- __Filters.cs
- TreeNodeMouseHoverEvent.cs
- Utilities.cs
- DesignerProperties.cs
- TraceSection.cs
- EpmSourceTree.cs
- SimpleMailWebEventProvider.cs
- BuildManager.cs
- X509UI.cs
- SettingsProperty.cs
- UrlMapping.cs
- HotSpotCollection.cs
- FontStyle.cs
- XsdDuration.cs
- SystemWebExtensionsSectionGroup.cs
- _UncName.cs
- ConfigurationStrings.cs
- Fonts.cs
- DataRowView.cs
- BamlBinaryReader.cs
- SqlProvider.cs
- AttributeCollection.cs
- UnsafeNativeMethods.cs
- TreeWalkHelper.cs
- EpmSourcePathSegment.cs
- PanelDesigner.cs
- BitmapDecoder.cs
- ObjectSelectorEditor.cs
- EntityParameterCollection.cs
- NodeInfo.cs
- FtpWebRequest.cs
- ValidationSummary.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- AuthenticationModuleElementCollection.cs
- SchemaImporterExtension.cs
- RenderOptions.cs
- XmlLinkedNode.cs
- TableColumn.cs