[Aporte] Actualizar DDNS con powershell y cURL
Publicado: Sab Ene 01, 2011 1:43 am
Hola
La mayoria supongo usa para actualizar los ddns el dynsite,
Adjunto unas lineas en powershell, que cumplen la misma funcion
Si alguien tiene tiempo de mirar las lineas las podemos corregir
Y la idea es mejorarlo entre todos
Si abren el archivo recomiendo el notepad++ o el powergui porque te muesta los bucles y las palabras clave las marca
para mirar el block de notas sirve, pero por ahi podemos poner algun caracter de mas
La configuracio inicial es sencilla hay que poner los datos de las ubicaciones de:
*programa del modem de per5onal,
*descargar el cURL del sitio oficial cURL (Win32 2000/XP 7.21.3 binary SSL enabled) y colocarlo en una carpeta del disco
*colocar los datos de Dynsite (user, pass, nombre ddns)
Dejo parte del codigo de como se ve mas o menos
en las lineas anteriores se observa lo que modificamos sea nombres o ubicaciones, tiene que quedar entre comillas hay una que esta como ejemplo, no tiene otro valor,
los nombres de las variables estan con $ por delante, si se modifica el nombre de la variable, se tiene que modificar las ocurrencias en el documento
los comentarios son las lineas que comiezan por # (numeral) esas lineas el interprete las obvia.
para los usuarios de winxp/server tiene que instalar dos cosas el PowerShell de lo posible el 2.0 pero yo uso el 1.0 y anda
powershell
y el rktools (Herramientas del kit de recursos de Windows Server 2003) este unicamente por el comando sleep (pausa de la pila)
kit de recursos
Los usuarios de vista pueden provar el power2.0 si es que no se actualizo solo, los de win 7 no necesitan (ya viene instalado).
para ejecutar el archivo si le das doble click, se abre en el editor, para ejecutarlo se puede desde el editor o sino desde click derecho, > ejecutar con powershell.
Yo en particular lo uso como tarea programada y la sentencia es asi
el programa del modem es necesario, para el caso que el modem se desconecte y quede como disco usb, si es otra clase de modem hay que ver como expulsar o resetear el puerto usb y el cURL resuelve desde la linea de comando la url de la forma http://$usuario:[email protected] ... $modemenip , para otro ddns habria que ver como es el url, desde el internet explorer seria mas facil como evento, pero desde la actualizacion kb834489 no admite user y pass en el url, y con otro navegador, por ejemplo (gecko) no tiene los eventos com, y el hacer click , asi como el tiempo de respuesta no es seguro
El cURL se puede cambiar por otro que haga lo mismo algun equivalente al wget o unas lineas en visual u otro
Si parece que esta un poco mezclado los idiomas en la linea del ps, sorry lo hice con fragmentos que encontre en internet
para los que no quieran usar el sleep se puede hacer una funcion de la forma
o usar el comando Start-Sleep -seconds tiempo directamente
si alguien tiene problemas por favor pegue las lineas de error que da el power shell algo como esto
si en las lineas queda algun dato importante, como usuario y contraseña, cambienlos por letras como xxxxx , etc
Bueno hasta aca, espero que a alguien le sirva
Saludos
La mayoria supongo usa para actualizar los ddns el dynsite,
Adjunto unas lineas en powershell, que cumplen la misma funcion
Si alguien tiene tiempo de mirar las lineas las podemos corregir
Y la idea es mejorarlo entre todos
Si abren el archivo recomiendo el notepad++ o el powergui porque te muesta los bucles y las palabras clave las marca
para mirar el block de notas sirve, pero por ahi podemos poner algun caracter de mas
La configuracio inicial es sencilla hay que poner los datos de las ubicaciones de:
*programa del modem de per5onal,
*descargar el cURL del sitio oficial cURL (Win32 2000/XP 7.21.3 binary SSL enabled) y colocarlo en una carpeta del disco
*colocar los datos de Dynsite (user, pass, nombre ddns)
Dejo parte del codigo de como se ve mas o menos
Código: Seleccionar todo
# datos coneccion ddns
$usuario = "miusuario"
$contrasena = "micontraseña"
$ipletras = "midns"
# si tenes mas de un ddns descomenta la linea de abajo(modificala) y la 149, y comenta la 150
# $ipletrasa = "cyndi.ath.cx"
#datos coneccion y nombre de modem
$nombreconexion = "mms"
$nombredelmodem = "WAN (PPP/SLIP) Interface"
# ubicacion ejecutables
$personalmente = "C:\Program Files\PER5ONAL\GSM\Per5onal.exe"
$curl = "C:\curl-7.21.3-ssl-sspi-zlib-static-bin-w32\curl.exe"
# mensaje para cada ciclo
$mensajepersonalizado = $ipletras + " es alcansable por ip del modem y por ddns"
los nombres de las variables estan con $ por delante, si se modifica el nombre de la variable, se tiene que modificar las ocurrencias en el documento
los comentarios son las lineas que comiezan por # (numeral) esas lineas el interprete las obvia.
para los usuarios de winxp/server tiene que instalar dos cosas el PowerShell de lo posible el 2.0 pero yo uso el 1.0 y anda
powershell
y el rktools (Herramientas del kit de recursos de Windows Server 2003) este unicamente por el comando sleep (pausa de la pila)
kit de recursos
Los usuarios de vista pueden provar el power2.0 si es que no se actualizo solo, los de win 7 no necesitan (ya viene instalado).
para ejecutar el archivo si le das doble click, se abre en el editor, para ejecutarlo se puede desde el editor o sino desde click derecho, > ejecutar con powershell.
Yo en particular lo uso como tarea programada y la sentencia es asi
Código: Seleccionar todo
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\marcar.ps1
El cURL se puede cambiar por otro que haga lo mismo algun equivalente al wget o unas lineas en visual u otro
Si parece que esta un poco mezclado los idiomas en la linea del ps, sorry lo hice con fragmentos que encontre en internet
para los que no quieran usar el sleep se puede hacer una funcion de la forma
Código: Seleccionar todo
function pausa {
param([int]$tiempo = 10)
Start-Sleep -seconds $tiempo
si alguien tiene problemas por favor pegue las lineas de error que da el power shell algo como esto
Código: Seleccionar todo
cyndi.ath.cx es ALCANZABLE por ping
Missing statement block after if ( condition ).
At :line:93 char:1
+ $ <<<< contador = 0
Missing statement block after if ( condition ).
At :line:93 char:1
+ $ <<<< contador = 0
iniciando programa modem
Conectando a mms
Se ha discado corectamente la coneccion mms
cyndi.ath.cx es alcansable por ip del modem y por ddns
Bueno hasta aca, espero que a alguien le sirva
Saludos