![]() |
Como identificar clientes conectados remotamente
Hola amigos.
Tengo un programa desktop en Delphi7 que actúa como servidor, al cual se conectan todos los usuarios del sistema, tanto los que están en la Lan como los que están en remoto. Lo que me piden es que necesitan que en un panel que muestra estadísticas en tiempo real identifique a los clientes que están conectados en forma remota. Alguien tiene una idea de como poder hacerlo? El programa servidor utiliza TServerSocket. Gracias de antemano. |
Las IP locales tienen un rango definido, al igual que las publicas:
https://en.wikipedia.org/wiki/Reserved_IP_addresses en base a eso puedes deducir si es local o no. Obvio hay escenarios (como prosas y vpns) que pueden distorsionar esa info. Adicionalmente si tienes control sobre los clientes les puedes hacer que envíe una "cabecera" con sun ip local (similar a como es el encabezado HOST en http) para extra validación. Pero no olvides que es solo seria real si no hay intentos de "ocultar" la ip de parte de los clientes. |
Puede que el comando QWINSTA pueda darte parte de la información que necesitas.
https://docs.microsoft.com/en-us/win...mmands/qwinsta Cita:
|
Si los clientes conectados de forma remota también lo han hecho mediante un login/password, entonces lo tienes fácil.
|
¿Has revisado los eventos que tiene el componente TServerSocket?
Hay algunos que posiblemente te sirvan para llevar la cuenta de los clientes conectados (OnAccept, OnClientConnect). |
En caso que el cliente suministre una lista de de ip´s locales, todas la que no estén en esa lista son externas. De que forma puedo leer los octetos sin necesidad de chekear una por una?.
|
Por ejemplo, el cliente confecciona una lista así:
10.9.234.0/24= red_a 10.9.96.0/24= red_b 10.11.0.0/16= red_c Etc... De que forma puedo hacer la comparación de un puesto que se conecta con una ip 10.9.96.15 para identificar de que región se conecta? |
Saludos.
Tal vez te sirva esto..
|
La franja horaria es GMT +2. Ahora son las 04:06:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi