Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2022
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
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.

Última edición por jars fecha: 17-06-2022 a las 14:21:18.
Responder Con Cita
  #2  
Antiguo 17-06-2022
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 17-06-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Puede que el comando QWINSTA pueda darte parte de la información que necesitas.

https://docs.microsoft.com/en-us/win...mmands/qwinsta
Cita:
Muestra información sobre las sesiones en un servidor host de sesión de escritorio remoto. La lista incluye información no solo sobre sesiones activas sino también sobre otras sesiones que ejecuta el servidor.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 17-06-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si los clientes conectados de forma remota también lo han hecho mediante un login/password, entonces lo tienes fácil.
Responder Con Cita
  #5  
Antiguo 20-06-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿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).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 20-06-2022
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
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?.
Responder Con Cita
  #7  
Antiguo 24-06-2022
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
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?
Responder Con Cita
  #8  
Antiguo 07-07-2022
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
Saludos.

Tal vez te sirva esto..

Código Delphi [-]

function IsRemoteSession:boolean;
const
  sm_RemoteSession = $1000;
begin
  result := GetSystemMetrics(sm_RemoteSession) <> 0;
end;
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DataSnap varios clientes conectados a distintas db por un mismo servicio Soa Pelaez Varios 9 16-05-2018 18:10:53
¿Cómo conecto una instancia MS Sql Server remotamente? tulio Conexión con bases de datos 2 04-06-2014 13:17:54
Como abrir puerto Remotamente kurono Varios 8 07-10-2012 04:18:46
Como Obtener un Listado de Clientes conectados a FIREBIRD???? AGAG4 Firebird e Interbase 2 24-04-2006 20:58:43
Como identificar si la conexión es LAN o WAN Lal0 Firebird e Interbase 4 08-11-2003 17:21:16


La franja horaria es GMT +2. Ahora son las 22:41:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi