![]() |
Localizar computadoras en la red y conectarse a ellas
Hola!
Tenía ya rato sin colocar un hilo. Ya termine unas aplicaciones Cliente/Servidor funcionales, aunque carece por el momento de varias herramientas. Los programas cliente los controlo por medio del servidor, usando componentes Indy. Entre las cosas que contenia los programas anteriores eran el envio de mensajes a traves de la red, captura de pantalla y bloqueo. Solo que tenían que conectarse al servidor primero. Ahora lo que quiero hacer es un programa que solo se encargue del envio de mensajes solo que sin el uso de servidor. Lo que pretendo pues es que mi aplicacion encuentre todas las computadoras de la red, y conectarse a las que tienen el mismo programa. Así el programa sería cliente y servidor a la vez. Lo primero es obtener el nombre de todas las computadoras existentes en la red junto con su IP, he checado en Trucomania y viene uno similar pero no funciona correctamente, sólo me muestra la computadora en la que estoy ejecutando el código y en las demás me muestra cadenas con basura. Agradezco cualquier ayuda... Salu2! |
Lamento no poder ser de mucha ayuda... pero te daré una idea.
Si no mal recuerdo hay una función llamada EnumNetResources (o algo similar).... Como supongo que trabajas con tcp/ip, pues tendrás que tener muy bien configurada la red para que todo funcione. El explorador de windows normalmente se basa en NetBEUI y abusa de los broadcasts para conseguir mostrar toda la red (y muchas veces falla en el intento)... por ahora solo eso puedo decirte... espero haber sido de ayuda. Hasta luego. ;) |
Hola jachguate!
La función que comentas no la encuentro en la ayuda de Delphi. La he buscado de varias maneras pero sin exito. ¿Se puede obtener los nombres mediante un ShellTreeView? Porke he hecho un trukillo y funciona a medias, porke es todo un show para poder obtener el nombre de las PC en red, confiablemente. Gracias de todos modos. |
Bueno, para el rollo que te pongo a continuacion necesitas el componente TIdIcmpClient de las Indy
Creo que he logrado sacar todo lo que no te interesa (no se si sacando me abre pasado o no abre llegado :p). Esta unit lo que hace es recuperar el nombre y la IP de los equipos de una red. Lo de conectarse si tienen el mismo programa ya te lo dejo a ti ;) Espero te sirva P.D. : empieza a mirarlo por el ultimo procedimiento que es donde esta la llamada a ObtenerIPs y, desde alli, ves mirando lo que hace cada uno de los procedures y functions Código:
unit UCTerminales; |
Gracias Cadetill!
Ahora mismo lo estoy checando, y le comento a todos los del Club como me va. :) Saludos! |
Por el momento estoy trabajando con la unit que proporcionaste, para asegurarme de que primero pueda ubicar las computadoras y mostrarlas. La conexión entre ellas la hare despues, de que logre que esto funcione :P
Cita:
:( Cuando lo hago siempre se sale del programa y me manda a esta linea: Código:
function TCTerminales.GetPIDLSize(IDList: PItemIDList): Integer; |
Ups, creo que me pase borrando cosas, jejeje
Dejame que le de un vistazo y te comento a ver donde esta el fallo ;) |
Bueno, pues ya lo tengo ;)
Te lo he subido a mi web en el apartado de App/Utils. El programa es el Localizador :p Lo he probado y funciona bien, a ver si te vale ahora :) P.D. Solo agradecer a todos aquellos que habeis visitado mi web. Ya habeis pasado de las 1000 visitas!!!! GRACIAS de nuevo |
Gracias de nuevo cadetill!
:D Tu programa corre muy bien, ahora continuare con lo mío. Colocare agradecimientos para ti en mi aplicación. |
Hola.
He descargado el programa y los fuentes (aunque ni los he visto por falta de tiempo.... ) y lo he probado en una red con dominios de Windows NT y unas 40 terminales con win95, 98, 2000 y XP. La terminal donde lo probe tiene Win XP Pro, y no detectó ninguna máquina, ni del grupo al que pertenece la red, ni del dominio completo. Lo digo como un comentario constructivo. Como te digo, no he tenido tiempo de revisar los fuentes y no tengo la menor idea de porque falle... pero no funciona. Hasta luego. ;) |
Pues la verdad es que no te sabria decir, no tengo ninguna maquina con XP para probarlo :(
Si encuentras el fallo y lo puedes corregir te estaria agradecido de que lo comentaras |
Lo intentaré cuando tenga tiempo... quizas la otra semana.
Hasta luego. ;) |
hola foro estuve probando el programita y tampoco logro ver las maquinas en una red Novell si encuentro la causa lo publicare.
Salud2;) |
Hola...!
Quiero decirles que a mí el programa si me ha funcionado. Lo instale en una computadora con Windows XP Professional, en la red ademas de esta PC se encuentran algunas con Windows ME & Windows 98 SE y si las puedo ver. No sé cuál sea el motivo de su fallo con ustedes. |
Hola, que tal?
Se me ocurrió una forma totalmente diferente, por ejemplo si el servidor tiene la siguiente ip: 169.254.0.1 y los clientes van desde el .2 hasta el .50, lo que podes hacer es un ciclo for pingeando cada una de las pcs. De esta forma si te responden podes tirar una conexion y realizar todo lo que necesites. Mauro Espero que te sirva la idea, el código no te lo paso xq soy bastante nuevo en delphi y no sabria por donde empezar, aunque lo hecho en visual y funciona bien. |
Hola!
mauro al respecto de tu idea ya lo habia pensado, solo que las ip's de la red estan dadas dinamicamente. Así que resultaría algo lioso en hacer un ciclo para obtener una conexion. Pero como comento el programa de cadetill me ha estado funcionando. Salu2! |
La franja horaria es GMT +2. Ahora son las 07:30:16. |
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