Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
Descubrir Servers MySQL en la red

Hola:

Estoy tratando de hacer una aplicacion en delphi 7, uso Zeos Component y como server de BD utilizo MySQL. Mi aplicacion requiere conectarse al servidor, y para ello necesito mostrar una lista con todos los servidores MySQL que se encuentren en la red, o al manos en el dominio. El problema esta qen que lo que se requiere es que se chequee la red en busca de estos servidores y luego poblar la lista para mostrarla(algo asi como hace el SQL Server 2000 cuando se trata de conectar a una BD ya existente, que el muestra todos los servidores que se encuentran funcionando). Lo que yo supongo que debo hacer, es enviar un paquete con una estructura determinada a la red, por un puerto determinado que sera la informacion que esta esperando el servidor MySQL para responder diciendo que ahi esta el e incluirlo en mi lista. Supongo tambien que el puerto sea el 3306, pero no estoy seguro de ello, ni de como es el paquete que tendria que enviar para lograr esto.
Sialguien tiene idea de como logar esto, o si ha hecho algo asi, por favor, agradezco cualquier idea o sugerencia.

Muchas gracias!!!

Lazaro Bustio Martinez.
Responder Con Cita
  #2  
Antiguo 13-05-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

Una forma facil que se me ocurre es
1. Buscar todos los equipos de la red obteniendo su IP (no tengo ni idea de como se hace esto)
2. Intentar conectar con el gestor de bases de datos MySQL, yo para hacer esto intento conectar con la base de datos "test", siempre y cuando conozcas el usuario.

El puerto por lo general es el 3306 pero se puede cambiar.

Otra idea que se me ocurre es intentar hacer un telnet al puerto 3306 de cada una de las máquinas de tu red, creo que responde algo.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #3  
Antiguo 13-05-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
Respondiendome a mi Mismo!

Gracias Kayetano por tu sugerencia. Ya tengo la solucion a como descubrir los servers que existen en la red. La cosa es precisamente enviar un paquete al puerto 3306 de la pc donde supuestamente esta el Server MySQL y ver lo que esta devuelve.

Probe con el TELNET de Windows y descubri que cuando hago esto:

START -> CMD -> TELNET <Enter>
Telnet: OPEN 172.16.21.28 3306

el telnet se conecta a esa pc por ese puerto y le devuelve la Version de MySQL que hay instalado!!!!(si es que hay alguno) con una cadena de caracteres detras, los que supongo tambien tengan su significado y luego se queda a la espera de una nueva cadena, la que si no es enviada, o no es la esperada el servidor cierra la conexion.

Visto esto, entonces la cosa seria asi:

Insertar en la forma un componente idTelnet, de la paleta INDY. Darle a su propiedad HOST el ip o el nombre del suspuesto Server MySQL; como PORT se le da el 3306 y luego se dice id TELNET.Connect;.
Despues se lee con alguna funcion lo que devuelve el server, que sera la version de su MySQL o un mensaje diciendo que no se pudo conectar al server.

Esto que les cuento es muy empirico; pues no he tenido tiempo de pulir mi idea aun con el afan de darle solucion al problema lo mas rapido posible.

Ahora bien; si mediante alguna funcion podemos descubrir todos los ips de la red a la que estamos conectados y almacenarlos en un StringList, que luego sus valores seran utilizados para pasarselos como valores a la propiedad HOST del idTELNET, y aquellos ips que envien una respuesta son almacenados en otro StringList pues podremos de esta manera obtener la lista de los servers MySQL que habitan en la red a la que pertenecemos.

REPITO: esta idea es todavia una vision inicial del problema. A cualquier interesado en saber como termino todo, por favor, escribirme a lbustio@yahoo.es; y en cuanto tenga la solucion ya terminada pues la publicare en este mismo foro para el uso de toda la comunidad.

Y aprovechando este comentario.. alguien sabe como obtener todos los IPs de la red a la que estamos conectados?!??!?

GRACIAS!!

Lazaro BUstio Martinez.
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


La franja horaria es GMT +2. Ahora son las 01:26:57.


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