sábado, 21 de agosto de 2010

Cambiar la configuración IP en Windows usando netsh

Para los que nos movemos con el portátil, resulta molesto cambiar los parámetros de la red cada poco desde la interfaz gráfica. Hace tiempo, ya lo usaba con XP, que programé un pequeño script usando el monstruoso comando (se puede hacer de todo) netsh de Windows, no tenéis más que ver la ayuda netsh /? Para más coña, la sintaxis del comando netsh cambia de XP a Vista, así que os dejo dos versiones.

Para XP usaríamos este código. Copiarlo y guardarlo en un fichero: changeip.cmd o changeip.bat

@echo off
rem Comprobación de parámetros
if [%1==[ goto ayuda
if "%2"=="-dhcp" goto dhcp
if [%2==[ goto ayuda

if [%3==[ goto ayuda
if [%4==[ goto ayuda


rem si llego aquí salto a la configuracion
goto configura

rem Cuando no pasan los parámetros necesarios muestro una ayuda
:ayuda
cls
echo.
echo Version Windows XP
echo.
echo Cambia los parametros IP del adaptador indicado
echo.
echo Modo 1 (direccion estatica)
echo ------------------------------
echo.
echo Parametro 1: (en minusculas): nombre de la conexion si tiene espacios, entre comillas "conexion local 1"
echo.
echo Parametro 2: direccion IP
echo.
echo Parametro 3: la mascara de red (255.255.255.0)
echo.
echo Parametro 4: la puerta de enlace
echo.
echo Parametro 5: (opcional): el DNS
echo.
echo Ejemplo de uso:
echo.
echo sin DNS:
echo.
echo changeip "conexion local 1" 192.168.1.11 255.255.255.0 192.168.1.254
echo.

echo.
echo con DNS:
echo.
echo changeip "conexion local 1" 192.168.1.11 255.255.255.0 192.168.1.254 194.224.52.4

echo.
echo.
echo Modo 2 (modo automatico DHCP)
echo -----------------
echo Parametro 1: igual que en Modo 1.
echo.
echo Parametro 2: -dhcp
echo.
echo Parametro 3: (opcional): el DNS
echo.
echo Ejemplo de uso:
echo.
echo sin DNS, todo en obtener: changeip -dhcp
echo.
echo con DNS: changeip -dhcp 194.224.52.4

goto fin

rem Pongo la configuración

:configura
netsh interface ip set address name=%1 static %2 %3 %4 1
goto dns

:dhcp
netsh interface ip set address name=%1 dhcp

:dns
rem Configuración DNS
if [%5==[ goto fin
netsh interface ip set dns name=%1 static %5

goto fin

:fin


 

La versión para Vista (no he probado en Windows 7 pero debería funcionar):

@echo off
rem Comprobación de parámetros
if [%1==[ goto ayuda
if "%2"=="-dhcp" goto dhcp
if [%2==[ goto ayuda
if [%3==[ goto ayuda
if [%4==[ goto ayuda


rem si llego aquí salto a la configuracion
goto configura

rem Cuando no pasan los parámetros necesarios muestro una ayuda
:ayuda
cls
echo.
echo Cambia los parametros IP del adaptador indicado
echo.
echo Modo 1 (direccion estatica)
echo ------------------------------
echo.
echo Parametro 1: (en minusculas): nombre de la conexion si tiene espacios, entre comillas "conexion local 1"
echo.
echo Parametro 2: direccion IP
echo.
echo Parametro 3: la mascara de red (255.255.255.0)
echo.
echo Parametro 4: la puerta de enlace
echo.
echo Parametro 5: (opcional): el DNS
echo.
echo Ejemplo de uso:
echo.
echo sin DNS:
echo.
echo changeip "conexion local 1" 192.168.1.11 255.255.255.0 192.168.1.254
echo.
echo con DNS:
echo.
echo changeip "conexion local 1" 192.168.1.11 255.255.255.0 192.168.1.254 194.224.52.4

echo.
echo.
echo Modo 2 (modo automatico DHCP)
echo -----------------
echo Parametro 1: (en minusculas): wifi o cableada
echo.
echo Parametro 2: -dhcp
echo.
echo Parametro 3: (opcional): el DNS
echo.
echo Ejemplo de uso:
echo.
echo sin DNS, todo en obtener: changeip -dhcp
echo.
echo con DNS: changeip -dhcp 194.224.52.4

goto fin

rem Pongo la configuración

:configura
netsh interface ipv4 set address name=%1 static %2 %3 %4
goto dns

:dhcp
netsh interface ipv4 set address name=%1 dhcp

:dns
rem Configuración DNS
if [%5==[ goto fin
netsh interface ipv4 set dnsserver name=%1 static %5

goto fin

:fin


 
 
Copiar el fichero que corresponda (según el sistema que tengáis) a  
%systemroot%\system32 y a partir de ese momento podéis usar el script.

Ejecutar changeip para obtener ayuda.

Para los más vagos podemos crear un fichero .bat o .cmd, por ejemplo: esto configura la conexión “cableada” con la ip 192.168.2.33 mask 255.255.255.0, gateway: 192.168.2.1 y DNS: 194.224.52.4

%systemdrive%

cd %systemroot%\system32

changeip "cableada" 192.168.2.33 255.255.255.0 192.168.2.1 194.224.52.4

Las dos primeras línea no son necesarias, pero tampoco están de más ;-)

Otro ejemplo de uso, configurar la conexión wifi con configuración automática, DHCP:

                changeip “wifi” –dhcp

Yo tengo unas cuantas ;-)



Os recomiendo renombrar vuestras conexiones de red para identificarlas de manera más clara y sin acentos, que suelen darnos problemas.


A mi me ahorra un montón de trabajo ;-)

No hay comentarios:

Publicar un comentario