Cambiando la IP automáticamente en modem’s 2Wire

Después de haberme cansado de buscar por un largo tiempo algún script o programa para cambiar la IP de mi modem 2Wire, he decidido por fin crear uno. El script en cuestión está programado en Python, un gran lenguaje que no conocía y que ahora que lo he probado no sé si podre vivir sin él. Es muy práctico para los que usamos gestores de descargas como Cryptload, JDownloader o similares que te permiten cargar listas de descarga y ejecutar un cambio de IP automático en cada descarga, de esta manera puedes dejar una lista de varios enlaces para que se descarguen automáticamente sin preocuparte por los captchas o tiempos de espera. El único problema de estos gestores es que no soportan algunos modelos de Modem/Routers en especifico tal es el caso del mi 2Wire 2071 Gateway y otros tantos que son de uso muy común aquí en México por la ISP de Telmex.

Bueno les explico cómo funciona. Existen dos maneras de ejecutar el script para el cambio de IP:

1. Bajar el script de python (extensión “py”) y correrlo con el intérprete/IDE que puedes bajar desde la página oficial, de esta manera podrás correr el script en diferentes ambientes como Linux, Windows, OS X y otros. Personalmente lo he probado en Ubuntu y corre de maravilla.

2. Bajar el archivo para Windows y ejecutarlo directamente sin necesidad de instalar el interprete Python.

Para ejecutar el script desde Python, lo más sencillo es pasar el script reset-modem.py al directorio de instalación de Python (Usualmente en C:\Python26) ya que este no pone variables de entorno para la línea de comandos. Después abren la ventana de ejecutar y teclean cmd, esto les abrirá una ventana de comandos. Ahora se cambian al directorio donde pusieron el script con cd C:\Python26 y finalmente ejecutan Python para que abra el script tecleando Python reset-modem.py esto bastara para cambiar su IP si no tienen protegida la administración del modem por contraseña. De tener protegido el modem bastara con pasarle como parámetro al script su contraseña de esta manera: Python reset-modem.py -p tuContraseña.

Y para los que se han ahorrado la molestia y han decidido ir por el paso 2 entonces lo único que tendrás que hacer es descomprimir el archivo rar y ejecutar el archivo reset-modem.exe, ahora que si lo tienes protegido con password pues igual, desde la línea de comandos solamente le pasas el parámetro -p por ejemplo reset-modem -p tuContraseña y listo.

Las contraseñas que contienen caracteres especiales dan problemas, por lo que tendrás que cambiarla a una diferente. Teóricamente la mayoría de los módems de la familia 2Wire deberían funcionar, de cualquier manera pueden ejecutar el comando reset-modem -s para mostrar los módems en los que ya ha sido probado el script.

Actualmente los modems probados con exito son:

  • 2Wire 1070 Home Portal
  • 2Wire 2071 Gateway
  • 2Wire 2701HG-T Gateway
  • 2Wire 2700HG Gateway

Ahora, si lo que quieres es integrarlo a un gestor de descargas (ya que es aquí donde realmente es práctico) lo puedes hacer siguiendo estas capturas de pantalla:

JDownloader

jdownloader-script1

Ejemplo de configuración con JDownloader y Python

Aqui les dejo el sencillo código de Python para quien quiera modificarlo a su antojo. Para crear el ejecutable he utilizado el archi-conocido py2exe que pueden descargar desde aqui.

#Sencillo script para cambiar las ip's de los modem 2Wire
#Escrito por Ivan Juarez Nunez. www.redmater.com 2009

import urllib
import getopt
import sys

def ayuda():
print "Uso: 2wreset [OPCION] [PASSWORD]\n  \n-h, --help:\tMuestra esta ayuda.\n-p, --password:\tEstablece el password para el acceso a modem\n-s, --show:\tMuestra los modelos soportados."

def showModems():
print "\n2Wire 1070 Home Portal\n2Wire 2071 Gateway\n2Wire 2701HG-T Gateway\n2Wire 2700HG Gateway"

def resetModem(passwd):
f = urllib.urlopen('http://home/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J21_ISP_RESET&CMSKICK=&PAGE=J21_ISP_RESET'+passwd)
content = f.read()
if (content.find('Ingresar contrase')!=-1):
print "\nOcurrio un error trantando de cambiar la IP. \nSi tu modem esta protegido por contrasena, usa parametro -p.\n"
print "Algunos modems que ya han sido probados son:"
showModems()
else:
print "\nReset de IP en progreso..."
print("\nVisita www.redmater.com para mas informacion")

password = ""

try:
opts,args = getopt.getopt(sys.argv[1:], "hsp:", ["help","show","password="])
except getopt.GetoptError, err:
print str(err)
ayuda()
sys.exit()

for o, a in opts:
if o in ("-h","--help"):
ayuda()
sys.exit()
elif o in ("-s","--show"):
showModems()
sys.exit()
elif o in ("-p","--password"):
password = a
else:
assert False, "Opcion invalida"

if (password!=''): password = '&PASSWORD='+password

resetModem(password)

19 Respuestas to “Cambiando la IP automáticamente en modem’s 2Wire”

  1. Unckmania Says:

    Aaaah, osea que decidiste no usar la cuenta que te habia pasado…

  2. Richie Says:

    Exelente compa muy buen script como siempre sorprendiendonos, sale suerte con tu pagina

  3. Fherska Says:

    Genial!!!! ya lo probe y funciona a la perfeccion GRACIAS!!!

  4. Anonymous Says:

    Finally this web is working on, i was tire to see the same stuff for 1 year. But dude your hosting plan is near to end so you need to pay for another year XD.
    Is a nice article well documented and works very good with cryptload by the way i liked more than the program mentioned here xd hopefully you post another good stuff.
    PSD:Tuiter sux

  5. kan Says:

    ami no me sirve este script por favor ayudenme porke no me cambia la ip de mi modem

  6. Rodo75 Says:

    Hola Con una pregunta no corre el archivo .exe porque tengo activada la contraseña en el modem donde la modifico?

  7. admin Says:

    Rodo75 la contraseña la puedes cambiar abriendo el panel administratio via web, en tu navegador escribes en la barra de direccion: “home” o bien “192.168.1.254″ sin comillas, busca la seccion dentro de sistema que dice “Contraseña del sistema” ahi puedes hacer los cambios pertinentes. Saludos!

  8. Rodo75 Says:

    Ok gracias por tu respuesta. La verdad me referia a donde localizar el scrip que hay qye modificar para agregar la contraseña ya que en el archivo auto ejecutable que baje no esta reset-modem.py. Trate de crearlo con el py2exe pero al instalarlo me pide una plataforma en donde correrlo y estoy como al principio. Perdon por las molestias pero soy nuevo en esto.

    Saludos.

  9. admin Says:

    Rodo, si tienes tu modem con contraseña no es necesario modificar nada del script, solo tienes que pasarle como parametro la contraseña como dice la explicacion arriba, ej: reset-modem.exe -p miContraseña. Si estas usando CryptLoad entonces crea un archivo bat y dentro de el la linea como la que acabo de poner y cuando le des el archivo para resetear el modem en vez del exe le das el bat. Espero te sirva, Saludo2!

  10. Rodo75 Says:

    Gracias ya lo realice y funciono.

    Saludos.

    Te voy a recomendar con un par de amigos. Tu pagina es muy buena.

  11. Naylo Says:

    Donde tengo qe poner el script? Como lo paso? no entiendo y no se me cambia mi ip.
    Podrian explicarme?

  12. josue Says:

    oie cuate mira la verdad no se mucho de esto.. kisisera saber si me puedes crear mi script de un modem 2 wire si de algo sirve te dejo el nombre de mi modem es josue1 y la contraseña es josue

  13. Mario Says:

    HOla podrias decir en que parte del script lo puedo editar para ponerle mi contraseña y asi no estarle poniendo -p pasword

  14. Viictor Says:

    Hola tengo una duda,
    es que no entiendo el lenguaje que manejas
    tengo el script
    pero no se como usarlo
    ejecuto el .exe
    i m dice q use el parametro ´-p
    pero nc como usarlo ni que hacer
    estoy perdido! :]

  15. Cristian Says:

    Gracias por tantos aportes…
    Agradeceria que puedan hacer un video tuto en Camtasia para que todos se entienda mejor….. trate de hacer algo con lo explicado pero no logre nada. Baje el Python 3.1.1 coloque en los ajustes del Jdownloader el destino C:\Python31\python.exe y en los parametros: reset-modem.exe
    -p
    miContraseña (mi contraseña del modem) y eso que probe de las dos maneras, colocando “Mi contraseña” y colocando el nombre de mi contraseña.

    Nada….. me dice que hay un error de reconexion…. me hace comentarios que esta mal configurado la reconexion automatica.
    Quise instalar el py2exe y no me dejo instalarlo…. RECONEXION FALLIDA PRUEBE RECONEXION MANUAL…..
    AGARDECERIA MUCHO TU AYUDA…..GRACIAS POR TUS APORTES….

  16. DANIEL Says:

    Primeramente gracias por el gran aporte realmente Funciona y bueno para los que estan preguntando como yo tampoco sabia hasta que le encontre la forma miren se los explico espero me entiendad paso por paso:

    1. Bajen el archivo el que esta en el numero dos (2. Bajar el archivo para Windows y ejecutarlo directamente sin necesidad de instalar el interprete Python.)
    2. Descompriman la carpeta, vienen varios archivos no se para que pero para algo han de servir jajaja. Yo la meti en la carpeta donde tengo el Jdownloader metan la carpeta completa.
    3. Abren el Jdowloader se van a la parte de reconexion (pueden tomar de referencia la imagen que ponen arriba) y en donde dice COMANDO (USA RUTAS DE DIRECTORIO ABSOLUTAS) ahi es donde hay que selecionar el achivo busquen en la carpeta que bajaron de aqui el archivo RESET-MODEN.EXE y ese coloquenlo.
    4.En donde dice PARAMETRO (1 PARAMETRO CADA LINEA) ahi solo escriban tal cual:
    -p
    1578965423 (este numero es su contraseña del modem es el numero que esta escrito en el modem el que dice WEP KEY: 1578965423)
    ESCRIBAN (-p) en una linea y su contraseña en otra.
    5. Despues le dan en CAMBIAR IP y listo deberia de funcionar.

    CREO QUE ESTA MAS QUE EXPLICADO HASTA CON MANZANAS JAJAJA ESPERO ME ENTIENDAN Y SI NO PUES PREGUNTEN ME DARE UNA VUELTA SEGUIDO. ESTO LO HAGO PORQUE LA VERDAD YO TAMPOCO ENTENDIA NADA Y ESTA UN POCO CONFUSO PERO ASI ESTA SENCILLITO. GRACIAS

  17. luchocoatl Says:

    Antes que nada, gracias por ese excelente scrip, sin embargo tube un pequeño problema antes de hacerlo funcionar, aquí va:

    He probado primero el ejecutable y me marcó un error, es el siguiente:

    C:\resetModem>reset-modem -p miContraseña
    Traceback (most recent call last):
    File “reset-modem.py”, line 49, in
    File “reset-modem.py”, line 16, in resetModem
    File “urllib.pyc”, line 87, in urlopen
    File “urllib.pyc”, line 203, in open
    File “urllib.pyc”, line 342, in open_http
    File “httplib.pyc”, line 868, in endheaders
    File “httplib.pyc”, line 740, in _send_output
    File “httplib.pyc”, line 699, in send
    File “httplib.pyc”, line 683, in connect
    File “socket.pyc”, line 498, in create_connection
    IOError: [Errno socket error] [Errno 11001] getaddrinfo failed

    Después bajé Python, lo instalé y probé el scrip reset-modem.py y obtuve otro error:

    c:\Python26>python reset-modem.py -p miContraseña
    Traceback (most recent call last):
    File “reset-modem.py”, line 49, in
    resetModem(password)
    File “reset-modem.py”, line 16, in resetModem
    f = urllib.urlopen(‘http://home/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J21_IS
    P_RESET&CMSKICK=&PAGE=J21_ISP_RESET’+passwd)
    File “c:\Python26\lib\urllib.py”, line 87, in urlopen
    return opener.open(url)
    File “c:\Python26\lib\urllib.py”, line 206, in open
    return getattr(self, name)(url)
    File “c:\Python26\lib\urllib.py”, line 345, in open_http
    h.endheaders()
    File “c:\Python26\lib\httplib.py”, line 892, in endheaders
    self._send_output()
    File “c:\Python26\lib\httplib.py”, line 764, in _send_output
    self.send(msg)
    File “c:\Python26\lib\httplib.py”, line 723, in send
    self.connect()
    File “c:\Python26\lib\httplib.py”, line 704, in connect
    self.timeout)
    File “c:\Python26\lib\socket.py”, line 500, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
    IOError: [Errno socket error] [Errno 11001] getaddrinfo failed

    Así que abrí el archivo reset-modem.py con el wordpad y le hice una pequeñísima modificación a la línea 19:

    Linea 19 antes del cambio: f = urllib.urlopen(‘http://home/xslt?PAGE=A02

    He cambiado la palabra home por la dirección LAN de mi modem 2wire, en la mayoría de los casos es 192.168.1.254, así que esta línea quedaría como:

    Linea 19 después del cambio: f = urllib.urlopen(‘http://192.168.1.254/xslt?PAGE=A02

    y listo, funcionó de maravilla!!!

  18. marco Says:

    ola mas o menos le entendi pero necesito ayuda
    porfavor nececito crear un bat para cambiar
    automaticamente de ip
    mi correo es brasil1993@live.com.mx
    de antemano gracias . urge!!!!!!!

  19. whatboy Says:

    Le tuve que modificar la direccion para que funcara!!!

    http://192.168.1.254/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J21_IS
    P_RESET&CMSKICK=&PAGE=J21_ISP_RESET’+passwd

Deja un comentario...

free blog themes