Saltar al contenido

¿Cómo obtengo la dirección IP de un cliente detrás de un balanceador de carga?

Hola usuario de nuestra web, hallamos la solución a tu interrogante, deslízate y la obtendrás un poco más abajo.

Solución:

Esto funciona:

((IPEndPoint)tcpClient.Client.RemoteEndPoint).Address.ToString()

Si el cliente se conecta a usted a través de una red interna, no estoy seguro de que pueda obtener su IP pública, ya que la conexión para volver al cliente no necesitaría esa información.

Parece que su servidor está detrás de un equilibrador de carga o un enrutador que usa NAT. En este caso, el paquete IP no tendrá la dirección del cliente de origen, sino la dirección del enrutador NAT. Solo el enrutador NAT conoce la dirección del remitente (a nivel de IP).

Dependiendo del protocolo de nivel superior que pueda estar utilizando además de TCP, es posible que pueda obtener la identificación del cliente a partir de eso, aunque es mucho más fácil falsificar dicha información en niveles superiores, si eso puede ser una preocupación.

Si necesita estos datos solo con fines de investigación, su dispositivo NAT puede mantener un registro.

Si es un requisito que obtenga el true originar un paquete IP en tiempo real, es posible que deba reconfigurar su enrutador o trasladar su servidor a la DMZ, pero eso es otra bola de cera. Hable con los muchachos de su red, ya que seguramente sabrán más sobre esto que yo (no soy un experto en redes).

Simplemente use el objeto socket de conexión de la clase Socket que ha usado para aceptar al cliente.

connectionSocket.RemoteEndPoint.toString();

Si estás contento con lo expuesto, tienes la libertad de dejar una crónica acerca de qué le añadirías a este escrito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *