Saludos a todos, despues de leer muchos posts y de que me ayuden tanto, me surgio una duda que no esta resuelta (o eso creo)
Mi problema es que quiero hacer un batch pero que haga lo siguiente
1 hacer el ping a una web y que se almacene en el cache o algo
2 usar esa ip para otro programa
Os cuento:
Tengo un server de un juego online, pero como mi ip cambia, necesito un ping que luego escriba la ip en el hosts del system32
un ejemplo seria:
@echo off
ping "direccion web"
·comando que me falta para almacenar, probe %ip% pero no funciono·
echo %la ip del ping% >> %windir%\system32\drivers\etc\hosts
El modificar el solo lectura y demas ya se gracias a un tutorial que encontre.
Gracias a todos de antemano.
Ismaw34
Una consulta.... para que es que guardas la
ip en el archivo
hosts exactamente?
CitarTengo un server de un juego online
Te refieres a que tu mismo tienes un servidor? o es de alguien más?
Saludos
El servidor es mio, y me gustaria usar esa utilidad para que los demas usuarios no tubieran que comerse la cabeza para cambiar la ip cada 2 por 3, solo en unos simples clics, cambiarlas
Saludos
Buenas, eso se puede hacer facilmente mediante un for.
Aqui el code:
@echo off
ping www.google.es > respuesta.txt
rem Hacemos un ping a google por ejemplo (o tu web) y guardamos la respuesta en un archivo de texto.
FOR /F "skip=4 tokens=3 delims= " %%a IN (respuesta.txt) DO call :func %%a
:func
set var=%1
set var=%var::=%
echo %var% >> %windir%\system32\drivers\etc\hosts
rem Mediante el comando for, y otros apaños cogemos la ip y la guardamos en la variable var.
del /q respuesta.txt
rem Por ultimo eliminamos el archivo de texto.
pause>nul
exit
Te recomiendo el tutorial de siderckcat de programacion de batch avanzada, esta muy bien y explica los usos del comando for.
saludos
Eso se soluciona fácil....
NO-IP, create una cuenta en no-ip instalate el programita del no-ip y el se encargará de actualizarla, pasale a tus usuarios tu dns no-ip... y listo.... ;D
CitarBuenas, eso se puede hacer facilmente mediante un for.
Creo que no se puede.... supongo que tu quieres la ip de tu servidor para agregarla al hosts asignandole una
dns, pero no puedes hacer ping a una dirección
dns que no existe, que no esta agregada antes en el
hosts, es decir, intentarías hacer ping a una dirección "fantasma"y por ende no devolvería nada :rolleyes:
Saludos
Muchas gracias kraszic, me has ayudado mucho.
@Novlucker
Tengo una cuenta no-ip, lo que pasa es que la ip de lo del juego on-line debe de ser otra direccion, y por lo tanto, debe de almacenarla en el host. La ip de mi web, debe de ser la misma que la otra, me comprendes?
Lo que ahora me surge un problema, la linea del host, no se elimina, y por lo tanto, se cruzan varias ips.
Habria alguna forma de solucionar el problema, comprobando si hay una linea de host y si exsiste, eliminarla?
Gracias a todos.
Ahora si, ya entendí, tu tienes una dirección no-ip, y a ella haces ping... obtienes la ip de respuesta, y la guardas en el hosts, asignandole una nueva
dns, ahora si....
CitarHabria alguna forma de solucionar el problema, comprobando si hay una linea de host y si exsiste, eliminarla?
Y si lo creas de cero? ;)
Saludos
Yo la unica pregunta q conteste realmente fue lo de almacenar la ip en una variable para ponerla en el archivo de host.
Sobre lo demas, no entiendo muy bien como funciona el archivo de host y no creo q pueda serte de gran ayuda.
Lo unico q te puedo decir es q si quieres borrar el archivo de host y poner solamente la ip guardada en la variable solo tienes q cambiar esto:
echo %var% >> %windir%\system32\drivers\etc\hosts
por esto:
echo %var% > %windir%\system32\drivers\etc\hosts
Pero con esto borrarias todo el archivo de host y no creo q te interese
saludos
Gracias a todos, ya me solucione el problema.
Saludos
De nada.... XD
Y la solución a sido......?
Saludos
Ya lo solucione gracias a los usuarios que hacen batch, saque la solucion de el programa de utiles (De no se que autor) pero se lo agradezco igual@echo off
title http://ismaw34host.no-ip.info/ - Modificador del archivo de hosts
cls
set a=echo
%a% Bienvenido, se va a modificar el archivo de hosts de WinXP (32 bits)
%a% Asegurese que al modificar, no exista otra linea de host: l2auth.lineage2.com o l2testauthd.lineage2.com
pause
goto Opciones
:Opciones
cls
%a% Opciones:
%a% 1 - No estoy seguro de no tener l2auth.lineage2.com o l2testauthd.lineage2.com
%a% en mi host quiero abrirlo manualmente con el Bloc de Notas
%a% 2 - Escribir el host
%a% 3 - Restaurar el host anterior (antes del cambio, como si no se hubiese usado
%a% el escribir host)
%a% 4 - Rescribir el host por cambio de IP (Se debe haber usado la opcion de
%a% escribir el host, anteriormente, para usar esta opcion)
%a% 5 - Salir
set /p Opc=Elige una opcion:
IF %Opc%==1 goto Comprueba
IF %Opc%==2 goto Escribir
IF %Opc%==3 goto Restaurar
IF %Opc%==4 goto Reescribir
IF %Opc%==5 goto Salir
IF %Opc%=="" goto error
:error
%a% No ha escrito ninguna opcion, escriba un numero
pause
goto Opciones
:Comprueba
%a% Abriendo hosts
attrib -r %windir%\system32\drivers\etc\hosts
cmd /c notepad %windir%\system32\drivers\etc\hosts
%a% Archivo cerrado, pulsa una tecla para volver al menu
attrib +r %windir%\system32\drivers\etc\hosts
pause
goto Opciones
:Escribir
%a% Haciendo un backup del archivo original
cd %windir%\system32\drivers\etc
del hosts_Ismaw34.bak
copy hosts c:\
cd c:\
ren hosts hosts_ismaw34.bak
copy hosts_Ismaw34.bak %windir%\system32\drivers\etc
del hosts_ismaw34.bak
cd %windir%\system32\drivers\etc
attrib hosts_Ismaw34.bak +r
%a% Escribiendo el host
attrib hosts -r
echo 216.107.250.194 nprotect.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %windir%\system32\drivers\etc\hosts
ping ismaw34host.no-ip.info > IP_ping.txt
FOR /F "skip=4 tokens=3 delims= " %%a IN (IP_ping.txt) DO call :func %%a
:func
set var=%1
set var=%var::=%
echo %var% L2auth.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %windir%\system32\drivers\etc\hosts
echo %var% L2testauth.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %windir%\system32\drivers\etc\hosts
del /q IP_ping.txt
attrib hosts +r
%a% Si tiene Windows Defender, o cualquier otro programa que detecte los cambios del archivo de hosts, acepte el cambio.
Pause
%a% Fin de la modificacion, y gracias por elegir nuestro servidor.
%a% Recuerde que si tiene mas de 1 servidor a elegir, borre o añada # delante de la linea.
pause
goto Salir
:Restaurar
%a% Se va a restaurar el archivo de hosts, su usara un backup hecho previamente
cd %windir%\system32\drivers\etc
attrib hosts_Ismaw34.bak -r
attrib hosts -r
del hosts
ren hosts_ismaw34.bak hosts
attrib hosts +r
%a% Archivo restaurado
pause
goto Salir
:Reescribir
%a% Se va a restaurar el archivo de hosts, su usara un backup hecho previamente
cd %windir%\system32\drivers\etc
attrib hosts_Ismaw34.bak -r
attrib hosts -r
del hosts
ren hosts_ismaw34.bak hosts
attrib hosts +r
%a% Archivo restaurado
%a% Haciendo un backup del archivo original
cd %windir%\system32\drivers\etc
copy hosts c:\
cd c:\
ren hosts hosts_ismaw34.bak
copy hosts_ismaw34.bak %windir%\system32\drivers\etc
del hosts_ismaw34.bak
cd %windir%\system32\drivers\etc
attrib hosts_ismaw34.bak +r
%a% Escribiendo el host
attrib hosts -r
echo 216.107.250.194 nprotect.lineage2.com ## added by "http://ismaw34host.no-ip.info">> %windir%\system32\drivers\etc\hosts
ping ismaw34host.no-ip.info > IP_ping.txt
FOR /F "skip=4 tokens=3 delims= " %%a IN (IP_ping.txt) DO call :func2 %%a
:func2
set var=%1
set var=%var::=%
echo %var% L2auth.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %windir%\system32\drivers\etc\hosts
echo %var% L2testauth.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %windir%\system32\drivers\etc\hosts
del /q IP_ping.txt
attrib hosts +r
%a% Si tiene Windows Defender, o cualquier otro programa que detecte los cambios del archivo de hosts, acepte el cambio.
Pause
%a% Fin de la modificacion, y gracias por elegir nuestro servidor.
%a% Recuerde que si tiene mas de 1 servidor a elegir, borre o añada # delante de la linea.
pause
goto Salir
:Salir
%a% Para resolver sus dudas y leer lar reglas internas del servidor vaya a http://ismaw34host.no-ip.info/ y registrese
%a% Created by: Ismaw
pause
exit
He aqui mi resultado, gracias a la comunidad entera. :D ;D ;)
Saludos
Tengo un problema al intentar acer variables en el archivo, a mi me funciona bien, pero a otros usuarios le da error, o la ip le sale "destino"
Aqui el bat:
@echo off
title http://ismaw34host.dyndns.info/ - Modificador del archivo de hosts v3b
cls
set a=echo
set win=%windir%\system32\drivers\etc
set menu=Opciones
%a% Bienvenido, se va a modificar el archivo de hosts
%a% Asegurese que al modificar, no exista otra linea de host: l2authd.lineage2.com o l2testauthd.lineage2.com
pause
goto %menu%
:Opciones
cls
%a% Modificador de hosts para WinXP, WinVista, Win2003, WinNT o Win2000
%a% Opciones:
%a% 1 - No estoy seguro de no tener l2authd.lineage2.com o l2testauthd.lineage2.com
%a% en mi host quiero abrirlo manualmente con el Bloc de Notas
%a% 2 - Escribir el host
%a% 3 - Restaurar el host anterior (antes del cambio, como si no se hubiese usado
%a% el escribir host)
%a% 4 - Rescribir el host por cambio de IP (Se debe haber usado la opcion de
%a% escribir el host, anteriormente, para usar esta opcion)
%a% 5 - Salir
%a% 6 - Tengo Win98, Win95 o WinME, que he de hacer?
set /p Opc=Elige una opcion:
IF %Opc%==1 goto Comprueba
IF %Opc%==2 goto Escribir
IF %Opc%==3 goto Restaurar
IF %Opc%==4 goto Reescribir
IF %Opc%==5 goto Salir
IF %opc%==6 goto WinB
IF %Opc%=="" goto error
:Opciones2
cls
%a% Modificador de hosts para Win98, Win95 o WinME
%a% Opciones:
%a% 1 - No estoy seguro de no tener l2authd.lineage2.com o l2testauthd.lineage2.com
%a% en mi host quiero abrirlo manualmente con el Bloc de Notas
%a% 2 - Escribir el host
%a% 3 - Restaurar el host anterior (antes del cambio, como si no se hubiese usado
%a% el escribir host)
%a% 4 - Rescribir el host por cambio de IP (Se debe haber usado la opcion de
%a% escribir el host, anteriormente, para usar esta opcion)
%a% 5 - Salir
%a% 6 - Tengo WinXP, WinVista, Win2003, WinNT o Win2000, que he de hacer?
set /p Opc=Elige una opcion:
IF %Opc%==1 goto Comprueba
IF %Opc%==2 goto Escribir
IF %Opc%==3 goto Restaurar
IF %Opc%==4 goto Reescribir
IF %Opc%==5 goto Salir
IF %opc%==6 goto Wina
IF %Opc%=="" goto error
:Wina
set win=%windir%\system32\drivers\etc
set menu=Opciones
goto %menu%
:Winb
set Win=%windir%
set menu=Opciones2
goto %menu%
:error
%a% No ha escrito ninguna opcion, escriba un numero
pause
goto %menu%
:Comprueba
%a% Abriendo hosts
attrib -r %win%\hosts.
cmd /c notepad %win%\hosts.
%a% Archivo cerrado, pulsa una tecla para volver al menu
attrib +r %win%\hosts.
PAUSE >nul
goto %menu%
:Escribir
%a% Haciendo un backup del archivo original
cd %win%
del hosts_Ismaw34.bak
copy hosts c:\
cd c:\
ren hosts hosts_ismaw34.bak
copy hosts_Ismaw34.bak %win%
del hosts_ismaw34.bak
cd %win%
attrib hosts_Ismaw34.bak +r
%a% Escribiendo el host
attrib hosts -r
echo 216.107.250.194 nprotect.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %win%\hosts.
ping ismaw34host.dyndns.info > IP_ping.txt
FOR /F "skip=4 tokens=3 delims= " %%a IN (IP_ping.txt) DO call :func %%a
:func
set var=%1
set var=%var::=%
echo %var% L2authd.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %win%\hosts.
echo %var% L2testauthd.lineage2.com ## added by "http://ismaw34host.no-ip.info/">> %win%\hosts.
del /q IP_ping.txt
attrib hosts +r
%a% Si tiene Windows Defender, o cualquier otro programa que detecte los cambios del archivo de hosts, acepte el cambio.
Pause
%a% Fin de la modificacion, y gracias por elegir nuestro servidor.
pause
goto Salir
:Restaurar
%a% Se va a restaurar el archivo de hosts, su usara un backup hecho previamente
cd %win%
attrib hosts_Ismaw34.bak -r
attrib hosts -r
del hosts
ren hosts_ismaw34.bak hosts
attrib hosts +r
%a% Archivo restaurado
pause
goto Salir
:Reescribir
%a% Se va a restaurar el archivo de hosts, su usara un backup hecho previamente
cd %win%
attrib hosts_Ismaw34.bak -r
attrib hosts -r
del hosts
ren hosts_ismaw34.bak hosts
attrib hosts +r
%a% Archivo restaurado
%a% Haciendo un backup del archivo original
cd %win%
copy hosts c:\
cd c:\
ren hosts hosts_ismaw34.bak
copy hosts_ismaw34.bak %win%
del hosts_ismaw34.bak
cd %win%
attrib hosts_ismaw34.bak +r
%a% Escribiendo el host
attrib hosts -r
echo 216.107.250.194 nprotect.lineage2.com ## added by "http://ismaw34host.dyndns.info">> %win%\hosts.
ping ismaw34host.dyndns.info > IP_ping.txt
FOR /F "skip=4 tokens=3 delims= " %%a IN (IP_ping.txt) DO call :func %%a
:Salir
%a% Para resolver sus dudas y leer lar reglas internas del servidor vaya a http://ismaw34host.no-ip.info/ y registrese
%a% Created by: Ismaw
pause
exit
Me podis comprovar el error... o orientarme?
Gracias a todos.... Saludos