elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Obtener subida y bajada de Internet en Megabytes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener subida y bajada de Internet en Megabytes  (Leído 2,712 veces)
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Obtener subida y bajada de Internet en Megabytes
« en: 19 Junio 2015, 17:39 pm »

Hola

Me gustaría saber como puedo, con VB.NET, obtener los megabytes de datos de bajada y subida a través de mi conexión de Internet.

Gracias



He encontrado este código en la ayuda de vb.net. Si se mete en un timer al entrar en una nueva web los valores aumentan, porque me da unos números que representan paquetes recibidos creo. Pero no se es esto lo que busco, ni qué representan estos valores.

Código
  1.    Dim properties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
  2.        Dim ipstat As IPGlobalStatistics = properties.GetIPv4GlobalStatistics()
  3.        Label1.text= "Inbound Packet Data: "  & ipstat.ReceivedPackets
  4.        Label2.text= "Forwarded: " & ipstat.ReceivedPacketsForwarded
  5.        Label3.text= "Delivered: " &  ipstat.ReceivedPacketsDelivered
  6.        Label4.text= "Discarded: " &  ipstat.ReceivedPacketsDiscarded
  7.  
  8.  

https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipglobalstatistics.receivedpackets%28v=vs.110%29.aspx



Finalmente parece que encontré la respueta:

Código
  1.     Dim ipv4Stats As System.Net.NetworkInformation.IPv4InterfaceStatistics
  2.        ipv4Stats = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(0).GetIPv4Statistics
  3.        Label6.Text = ipv4Stats.BytesReceived.ToString
  4.        Label7.Text = ipv4Stats.BytesSent.ToString
  5.  

fuente:
http://www.sevenforums.com/network-sharing/193986-question-about-packets-bytes-sent-received-n-work-connection.html

Se obtiene la misma información que aquí:



Sl2


« Última modificación: 19 Junio 2015, 19:21 pm por okik » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Obtener subida y bajada de Internet en Megabytes
« Respuesta #1 en: 19 Junio 2015, 23:03 pm »

Solo por comentarlo, ten en cuenta que lo que estás haciendo aquí no es una metodología segura que puedas aplicar a otros PC's:
Citar
Código
  1. ipv4Stats = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(0).GetIPv4Statistics

Estás accediendo a un índice específico sin haber identificado previamente si ese índice "0" hace referencia a la interfáz de red que esté activa y transfiriendo datos.

Esas classes que estás utilizando exponen miembros para identificar el adaptador en concreto que realmente quieras, mediante la MAC, el nombre de la interfáz, las DNS, la Id, el hostname, o cómo prefieras hacer la comprobación, deberías mejorarlo basándote en alguno de esos parámetros.

Esto tampoco sería un método seguro, ya que no identifico la red en concreto que quiero mostrar, pero al menos excluyes bastantes otras posibles interfaces:
Código
  1. Public Shared Function GetEthernetAdapters() As IEnumerable(Of NetworkInterface)
  2.  
  3.    Return From adapter As NetworkInterface In NetworkInterface.GetAllNetworkInterfaces
  4.           Where adapter.NetworkInterfaceType = NetworkInterfaceType.Ethernet AndAlso
  5.                 adapter.Supports(NetworkInterfaceComponent.IPv4) AndAlso
  6.                 Not adapter.IsReceiveOnly AndAlso
  7.                 Not adapter.OperationalStatus = OperationalStatus.Down
  8.  
  9. End Function
  10.  
  11. Private Sub Timer1_Tick(sender As Object, e As EventArgs) _
  12. Handles Timer1.Tick
  13.  
  14.    Dim ipv4Stats As IPv4InterfaceStatistics = GetEthernetAdapters.First.GetIPv4Statistics
  15.  
  16.    Label16.Text = String.Format("{0} Bytes.", CStr(ipv4Stats.BytesReceived))
  17.    Label7.Text = String.Format("{0} Bytes.", CStr(ipv4Stats.BytesSent))
  18.  
  19. End Sub

Saludos!


« Última modificación: 19 Junio 2015, 23:10 pm por Eleкtro » En línea



okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Obtener subida y bajada de Internet en Megabytes
« Respuesta #2 en: 19 Junio 2015, 23:33 pm »

hola

No había caído, gracias. Aprecio tu aporte.


Como prueba he conectado el móvil para usarlo como modem y utilizar la conexión del mismo. El código sigue funcionado. He sustitiudo (0) por Firts.

Código
  1. ipv4Stats = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces.First.GetIPv4Statistics

Pero supongo que es lo mismo.


En cuanto al código que me das, me da error en la lína 14.

Código
  1. Dim ipv4Stats As IPv4InterfaceStatistics = GetEthernetAdapters.First.GetIPv4Statistics

Señala a GetIpv4Statistics y dice "La secuencia no contiene elementos"

Intentaré averiguar el índice de la red activa.


Sl2


« Última modificación: 19 Junio 2015, 23:37 pm por okik » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Obtener subida y bajada de Internet en Megabytes
« Respuesta #3 en: 20 Junio 2015, 00:18 am »

"La secuencia no contiene elementos"

El error se explica por si mismo, te está indicando que la query de LINQ está vacía, ya que no se ha encontrado ningún elemento que cumpla las condiciones que especifiqué (en mi caso si funciona, con mi interfáz de red Ethernet), cambia esas condiciones.

saludos!
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines