Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: branon32 en 21 Noviembre 2019, 17:09 PM

Título: Enviar y recibir informacion en LAN con BATCH
Publicado por: branon32 en 21 Noviembre 2019, 17:09 PM
Pues lo que dice el titulo, tengo un montón de PCs intraconectados y quiero poder enviar y recibir informacion entre ellos a través de un archivo .bat para poder comunicarme con los compas sin que nos vea la profe :v
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: engel lex en 21 Noviembre 2019, 17:19 PM
batch es solo un manejador de archivos por lote, no es un leguaje de programacion... en pocas palabras, si no hay en la pc algun programa de inercomunicacion, batch no puede hacer nada... no se si windows tendrá algo así de fabrica...
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: branon32 en 22 Noviembre 2019, 12:05 PM
Se puede hacer, pero hay que darle vueltas
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: Mudereded401 en 26 Noviembre 2019, 18:00 PM
Cita de: engel lex en 21 Noviembre 2019, 17:19 PM
batch es solo un manejador de archivos por lote, no es un leguaje de programacion... en pocas palabras, si no hay en la pc algun programa de inercomunicacion, batch no puede hacer nada... no se si windows tendrá algo así de fabrica...
Se Refiere a comunicarse por LAN, no por internet, Pero, Si se puede.

Ya hice un programa que lo hace, Pero como no tengo 2 computadores, No lo he probado bien, Pero por lo visto si funciona(Según un amigo mio)
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: Mudereded401 en 26 Noviembre 2019, 18:38 PM
Yo hice un pequeño programa, PERO yo no lo he podido probar por mi cuenta, Se lo dí a un amigo mio, ya que el tiene varias computadores Y yo no, me dijo Que Funcionaba Perfectamente, Asi que si no les funciona, Por favor avisadme  ;D

Primero Deben Poner Estos comandos en un Archivo .bat, Que sería el Visualizador:

Chat.bat =
@echo off
color 0b
title Visualizador

echo.
echo Ingresar Ubicacion del Servidor.txt, Encerrado en [""], Ej: "\\USER-PC\..."
echo.
set/p servidor=Servidor :

start LC-writer.bat

:a
@mode con cols=60 lines=30
cls
echo.
type %servidor%
echo.
timeout/t 1 /nobreak>nul
goto a


Luego Crean otro archivo .bat Que seria LC-Writer.bat

LC-Writer.bat =
@echo off
color 0a
title Writer
echo.
echo Ingresar Ubicacion del Servidor.txt, Encerrado en [""], Ej: "\\USER-PC\..."
echo.
set/p servidor=Servidor :
cls

echo.
set/p nombre=Ingresar nombre :

echo %nombre% Se ha unido al Chat>>%servidor%

:a
@mode con cols=60 lines=15
cls
echo.
set/p escritura=Escribe algo :
(
echo.
echo %nombre% : %escritura% ) >>%servidor%
goto a







Luego de que Hallan creado esos 2 archivos, Deben hacer un Archivo.txt, Que es donde se almacenará el Chat; Tienen que guardarlo en el computador principal, Y que los demas entren a ese PC por red (\\User-pc\blablabla), En donde dice, Ingresar Servidor; Luego se les abrirá automaticamente el Writer.bat para que Vuelvan a ingresar el servidor y a Ingresar sus nombres para que Aparezcan en la Conversacion.

PD: Servidor es El Archivo TXT que Está en el PC Principal, Solo lo llame Así porque sí, Ustedes pueden Ponerle cualquier nombre a ese .TXT.

Y eso sería todo, Si tiene algún error Por favor avisen  :)
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: engel lex en 26 Noviembre 2019, 18:49 PM
hmm interesante implementacion! XD a falta de recursos un archivo sobre smb! XD

muy creativo e ingenioso! ;) no se me habría ocurrido
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: branon32 en 27 Noviembre 2019, 16:10 PM
Muchas gracias a todos!

Al final lo resolví yo solo, al principio pensé en utilizar el comando waitfor para enviar una señal entre todos los pc para que refrescaran. Pero no funcionaba muy bien y el resultado ha sido este:





Por aquí os dejo el código fuente y un enlace para descargar los archivos
En la linea 19 está la dirección generalizada de todos los PCs de mi clase, así que vosotros debéis poner la vuestra personalizada

ENLACE GITHUB: https://github.com/bruneo32/TIC-CHAT (https://github.com/bruneo32/TIC-CHAT)

En este proyecto estoy usando 3 "extensiones" para batch:

Lo que yo llamo "extensiones" son archivos ejecutables (.EXE) que implementan nuevas funciones y comandos en batch

Código (dos) [Seleccionar]

@echo off
SETLOCAL EnableDelayedExpansion
mode 90,30
title TIC CHAT

REM Multiproceso
:startExtraThread
if not "%1" == "" goto %1

REM ESTO ES PARA LOS COLORES
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
 set "DEL=%%a"
)

cls
echo.
set/p "serv=Servidor: Inves"
if [%serv%]==[] exit
set "serverf=\\Inves%serv%\D\Mis Documentos\CT\_SERVER"

REM cargar datos del servidor (server.ccc)
< "%serverf%\server.ccc" (
set/p ccolor=
set/p wcolor=
set/p wtext=
set/p cfrec=
)
color %ccolor%
set file=%serverf%\roomdata

:start
cls
REM Se alternan todos los colores para limpiar el buffer de la imagen
color f0
color 0f
color %ccolor%

REM Insertar la foto
call "%serverf%\insertbmp.exe" /p:"%serverf%\banner.bmp" /x:0 /y:12 /z:100

REM Establecer la posicion del texto con 'cursor'
call "%serverf%\cursor.exe" 3 20
REM Aqui se llama a la funcion que colorea el texto
call :ColorText %wcolor% "%wtext%"
call "%serverf%\cursor.exe" 4 22
set/p "nick=Seudonimo: "
if [%nick%] == [] goto start

REM Iniciar el textbox
start "" "%0" TEXTUAL %serv% %nick% %ccolor%
call "%serverf%\cmdow" @ /TOP
echo -- %nick% se ha unido  [%time%]>> %file%

:chat
cls
color f0
color 0f
color %ccolor%

TITLE TIC CHAT2

echo.
REM Leer todos los mensajes
for /f "tokens=*" %%A in (%file%) do ( echo %%A )

REM Obtener la posicion de la ventana del textbox
for /f "tokens=2,8-9" %%a in ('%serverf%\cmdow "TIC CHAT" /p') do (
set "LEFT=%%b" & set "TOP=%%c"
)
REM Establecer la posicion de esta ventana en funcion de la otra
set/a "TOP=%TOP%+32"
call "%serverf%\cmdow" @ /MOV %LEFT% %TOP%

REM Escuchar la señal "blah" para refrescar (obsoleto)
REM waitfor "blah" /t %cfrec% >nul

timeout /t %cfrec% >nul

REM Obtener la posicion de la ventana del textbox
for /f "tokens=2,8-9" %%a in ('%serverf%\cmdow "TIC CHAT" /p') do (
set "LEFT=%%b" & set "TOP=%%c"
)
REM Establecer la posicion de esta ventana en funcion de la otra
set/a "TOP=%TOP%+32"
call "%serverf%\cmdow" @ /MOV %LEFT% %TOP%
goto chat

:TEXTUAL
REM Aqui va el textbox
TITLE TIC CHAT
mode 90,3

REM Leer variables
set "serv=%2"
set "nick=%3"
set "ccolor=%4"

set "servf=\\Inves%serv%\D\Mis Documentos\CT\_SERVER"

color %ccolor%
call "%serverf%\cmdow" @ /TOP
set file=%serverf%\roomdata

:TEXTUAL2
cls
echo.
set/p "ptext=>>> "
REM Este echo no es para mostrar un texto, sino para escribir en el archivo del server
echo [%time%] %nick% : %ptext%>> %file%
REM Enviar señal de refresco (obsoleto)
REM waitfor /si "blah">nul
goto TEXTUAL2


exit
:ColorText
REM Esta funcion sirve para dar color a un texto
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof



Mod: no hagas doble post, usa el boton modificar
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: engel lex en 27 Noviembre 2019, 16:17 PM
pregunta, por que no lo hiciste en vbs que viene implementado en windows y si es un lenguaje de verdad? (pudieras haber usado sockets)

tal vez usar python? (hay interpretes portables por si no puedes instalar nada)
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: Serapis en 27 Noviembre 2019, 17:21 PM
El mesenger (hablo del servicio del PC, no del cliente de correo), sirve precisamente para la comunicación en la LAN. (como es un servicio, debe estar habilitado).
El comando básico:
Net send
"Sends messages to other users, computers, or messaging names on the network.
Syntax
net send {name | * | /domain[:name] | /users} message"

Los mensajes puedes pasarlos cifrados por algún otro programa, cada día/semana acordais una clave entre todos y hale.

Recuerda que "bat" es como querer construir castillos con terrones de azúcar. Bastante ineficiente tanto en ejecución como en desarrollo.
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: branon32 en 27 Noviembre 2019, 20:53 PM
Cita de: NEBIRE en 27 Noviembre 2019, 17:21 PM
El mesenger (hablo del servicio del PC, no del cliente de correo), sirve precisamente para la comunicación en la LAN. (como es un servicio, debe estar habilitado).
El comando básico:
Net send
"Sends messages to other users, computers, or messaging names on the network.
Syntax
net send {name | * | /domain[:name] | /users} message"

Los mensajes puedes pasarlos cifrados por algún otro programa, cada día/semana acordais una clave entre todos y hale.

Recuerda que "bat" es como querer construir castillos con terrones de azúcar. Bastante ineficiente tanto en ejecución como en desarrollo.


Net send no funcionaba en mi pc xd ya lo intenté




Cita de: engel lex en 27 Noviembre 2019, 16:17 PM
pregunta, por que no lo hiciste en vbs que viene implementado en windows y si es un lenguaje de verdad? (pudieras haber usado sockets)

tal vez usar python? (hay interpretes portables por si no puedes instalar nada)

Precisamente por dar por culo (tanto a mi mismo como a mis compas)




Si a ver, si esto fuese un programa "comercial" (incluso gratuito). Pues lo haría de una forma más elegante y desde luego eficiente. Pero no olvidemos que el objetivo de este proyecto no es hacer el mejor chatroom, es hacer un chatroom con bat para que mis compas puedan intentar entender el código (por eso lo he llenado de comentarios).
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: engel lex en 27 Noviembre 2019, 21:24 PM
repito la advertencia de atras, no hagas doble post, si quieres agregar info usa el boton modificar
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: Mudereded401 en 27 Noviembre 2019, 21:51 PM
Cita de: engel lex en 26 Noviembre 2019, 18:49 PM
hmm interesante implementacion! XD a falta de recursos un archivo sobre smb! XD

muy creativo e ingenioso! ;) no se me habría ocurrido
Jeje grax, La verdad es Que no se mucho de batch, Soy casi nuevo pero intento hacer Las cosas un poco Distintas para ver el Mejor resultado; Al principio yo también intente hacer que El chat y el lugar donde escribes, Quedaran en el mismo lugar, Pero obviamente no se pudo y me tocó separarlos .-.
Título: Re: Enviar y recibir informacion en LAN con BATCH
Publicado por: branon32 en 28 Noviembre 2019, 12:52 PM
Hola buenas chicos! Creo que este será mi último post en este hilo, sólo vengo a deciros como me ha ido la implementación en las máquinas de clase ya que lo he probado hoy.

Todo ha salido perfecto pero he tenido que hacer dos modificaciones: