Archives for: February 2007

Manual de ayuda para el roadwarrior

12.02.07 | by enlavin [mail] | Categories: Programación

A petición del respetable hoy, en el post del trimestre, voy a hacer uno técnico.

En mi trabajo, cual meretriz, tengo que ir de cliente en cliente y ninguna de las redes a las que tengo que conectarme suele tener la misma estructura. La rutina de entrar en las propiedades de red y cambiar la IP, máscara, etc se hace infinitamente pesada. Además, windows no colabora y el diálogo de cambiar propiedades de la red suele tardar una eternidad. Como dijo alguien por ahí, cuando haces algo aburrido más de 2 veces es hora de automatizarlo.

En nuestra ayuda acude una utilidad muy interesante que tiene Windows 2000, XP y similares: netsh. Podemos decir, para el que le suene, que es una mezcla de ifconfig y route, o más bien la variante windowsera del comando ip. Para el que no le suene podemos decir lo que nos dé la gana, total ... En cualquier caso ahí está y voy a usarla :-)

El truco consiste en hacer un fichero por lotes con la definición de los perfiles de red que queremos tener predefinidos. También ayuda renombrar las interfaces de red de windows, para que en vez de llamarse Interfaz de red inalambrica 3 se llame wlan, por ejemplo. Este último paso es completamente opcional, pero simplifica la llamada del script desde línea de comandos. En mi caso tengo WLAN para la wifi y LAN para la tarjeta ethernet del portátil.

Con un ejemplo se entienden mejor las cosas. Ahí va el script:

@echo off

rem Sin parametros muestra la ayuda
if "%1" == "" goto help
set profile=%1

rem Si no se especifica el nombre de una interfaz se usa el
rem nombre LAN por defecto

if "%2" == "" goto defaultinterface
set iface=%2
goto config
:defaultinterface
set iface=LAN

:config
set NETSH=netsh interface ip
goto %profile%

rem La primera regla es para redes en las que haya un
rem servidor DHCP que asigne direcciones

:dhcp
%NETSH% set address name="%iface%" source=dhcp
%NETSH% set dns name="%iface%" source=dhcp
%NETSH% set wins name="%iface%" source=dhcp
goto end

:cliente1
%NETSH% set address name="%iface%" source=static addr=192.168.1.200 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1
%NETSH% set dns name="%iface%" source=static addr=192.168.1.1 register=PRIMARY
%NETSH% add dns name="%iface%" addr=80.58.0.33
%NETSH% set wins name="%iface%" source=static addr=192.168.1.1
goto end

:cliente2
%NETSH% set address name="%iface%" source=static addr=192.168.1.101 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1
rem Configuro una segunda IP para el mismo interfaz
%NETSH% add address name="%iface%" addr=85.16.1.69 mask=255.255.0.0
%NETSH% set dns name="%iface%" source=static addr=192.168.1.254 register=PRIMARY
goto end

:cliente3
%NETSH% set address name="%iface%" source=static addr=192.168.0.51 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1
%NETSH% set dns name="%iface%" source=static addr=192.168.0.1 register=PRIMARY
%NETSH% set wins name="%iface%" source=static addr=192.168.0.1
rem Se añaden 2 rutas a redes externas
route add 192.168.1.0 mask 255.255.255.0 192.168.0.2
route add 192.168.2.0 mask 255.255.255.0 192.168.0.2
goto end

:help
echo redes perfil [interfaz]
goto end


echo Interfaz "%iface%" configurada con exito.
:end

En mi caso el script lo llamé redes.bat. Por ejemplo, para configurar la wifi en la oficina podemos hacer:

rem Configurar IP dinámica en la interfaz wifi
c:\> redes dhcp wlan

O para configurar la red del cliente1 en la tarjeta ethernet:

rem Configurar ethernet para trabajar en cliente1
c:\> redes cliente1 lan

Con esto windows tarda casi lo mismo en configurar la interfaz de red que haciéndolo con el diálogo gráfico (que alguien me explique por qué tarda tanto). Pero el tiempo que le dedico a la configuración de la red es el que tardo en lanzar el script desde una ventana de cmd, lo que redunda en la mejora de mi salud mental :) .

Por cierto, los parámetros configurados mediante este script se quedan almacenados en las propiedades de la tarjeta, por lo que no es necesario ejecutar de nuevo el script mientras no vayamos a otra red con otra configuración.

Vocación de Morlock

February 2007
Mon Tue Wed Thu Fri Sat Sun
 << < Current> >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

Categories

Misc

XML Feeds

What is RSS?

powered by b2evolution free blog software