En este artículo voy a Mostrar como saber las conexiones que tenemos abierta en nuestra red.
Usaremos el espacio de nombre System.Net.NetworkInformation.
System.Net.NetworkInformation Este espacio de nombres System.Net.NetworkInformation no da información sobre el tráfico de nuestra red, Información de la dirección de nuestra red, Tipo de adaptado que tenemos, velocidad de nuestra red, ect
De una forma sumamente sencilla. Este espacio de nombres el nuevo en la versión de net 2.0 si tiene una versión inferior a la 2.0 de NET Framework, no te funcionara este ejemplo que mostramos en este artículo.
Para tener acceso a la información de nuestra red local usaremos las clases IPGlobalProperties
IPGlobalProperties La clases IPGlobalProperties no da información detallada sobre el tráfico de red, así como la conexiones activa puerto abierto, de nuestro adaptador de red, de nuestro ordenador.
Para saber la conexiones que tenemos abierta, y los puerto de esa conexiones, y el protocolo usado. Tenemos que crea una instancia de las clases IPGlobalProperties de la siguiente manera
IPGlobalProperties propiedades =IPGlobalProperties.GetIPGlobalProperties();
El método IPGlobalProperties.GetIPGlobalProperties(); devuelve un objecto que proporciona información sobre estadísticas de tráfico y conectividad de red del equipo local.
Vemos creado ya una instancia de las clases y tenemos un objecto Listo ya para llama al método miembro de la clasess
Tendremos que crea un tipo de array de las clases TcpConnectionInformation Ya que necesitamos saber la información de el protocolo usado en la conexiones
TcpConnectionInformation La clases TcpConnectionInformation Proporciona información sobre las conexiones TCP (Protocolo de control de transmisión) del equipo local.
Necesita pasarle una referencia de objecto de tipo IPGlobalPropertiesGetActiveTcpConnections(); Con la informacion de protocolo TCP.
de la siguiente manera
TcpConnectionInformation[] coneciones = propiedades.GetActiveTcpConnections(); GetActiveTcpConnections(); Devuelve información sobre las conexiones TCP (Protocolo de control de transmisión) de Protocolo de Internet versión 4 (IPV4) del equipo local.
Esta información la guardamos en array coneciones. Ahora necesitamos recorre el array en busca de la informacion que deseamos con un foreach.
De la siguiente manera.
foreach (TcpConnectionInformation t in coneciones) { //variable locales string IPlocal; string PuertoLocal; string ConecionesRemota; string PuertoRemoto; string ConecionesActiva; IPlocal = t.LocalEndPoint.Address.ToString(); PuertoLocal = t.LocalEndPoint.Port.ToString(); ConecionesRemota = t.RemoteEndPoint.Address.ToString(); PuertoRemoto = t.RemoteEndPoint.Port.ToString(); ConecionesActiva = t.State.ToString(); }
Recorremos el array con t, y extraemos la información que queremos que son. la ip de nuestro ordenador, que guardamos en la variable IPlocal.
El puerto local que se esta usando, o abierto. Los guardamos en la variable PuertoLocal.
Las conexiones remotas, que esta conectado a nuestro pc, con su Ip, la guardamos en la variable ConecionesRemota.
Los puertos remotos de otro ordenador, que tiene abierto, y que se conecta a nuestro, usando ese puerto.Los guardamos en la variable puertoRemoto.
Todas las conexiones activas que están en eso momento usando Internet, la guardamos en la variable ConecionesActiva.
LocalEndPoint La propiedades LocalEndPoint obtiene un EndPoint que contiene la dirección IP local y el puerto local
RemoteEndPoint la propiedad RemoteEndPoint obtiene el EndPoint que contiene la dirección IP remota y el número de puerto remoto conectado a nuestro pc por ese puerto.
State La propiedades State Obtiene el estado de la conexiones. Es decir toda la conexión activa de nuestra red.
En resume todos el codigo para saber la conecion activa es asi
Private void ListaConexiones() { foreach (TcpConnectionInformation t in coneciones) { //variable locales string IPlocal; string PuertoLocal; string ConecionesRemota; string PuertoRemoto; string ConecionesActiva; IPlocal = t.LocalEndPoint.Address.ToString(); PuertoLocal = t.LocalEndPoint.Port.ToString(); ConecionesRemota = t.RemoteEndPoint.Address.ToString(); PuertoRemoto = t.RemoteEndPoint.Port.ToString(); ConecionesActiva = t.State.ToString(); } }
es siguiente ejemplo es un programa que usa esto método de la clases System.Net.NetworkInformation.
|
Accesible sólo a usuarios