miércoles, 31 de agosto de 2011

Creación de archivos por lotes para pequeñas cosas. Parte 1: Script para introducir direcciónes estáticas.

Siguiendo con mi compartición de conocimientos con la Nada (Si, estoy completamente solo en este blog, no se para qué hago entradas... si, bueno, para no aburrirme tanto) voy a dejar apartados a un lado las experiencias ruterianas y voy a pasar a explicar la creación de pequeños archivos que falicitarán un poco al usuario que se vea obligado a usar en un sitio direcciones IP estáticas y direcciones dinámicas, como primera parte de dos de archivos por lotes para cosas "útiles".

Imaginemos la situación: En la empresa usas un ordenador portátil que funciona con Wifi y en casa usas el mismo ordenador para uso personal, con la diferencia de que en la empresa debes asignar estáticamente las IP, máscaras y DNS para trabajar, y en casa usas el servicio DHCP que te lo asigna solito. A la larga te aburrirá tener que entrar en configuraciones de adaptador para configurarlo, porque cansa mucho.

Yo he tenido esta situación presente, y tras muchas investigaciones con las consolas de comandos de Windows, por fin he conseguido dar con el método de librarme de ésto, de tal forma que con ejecutar un simple archivo por lotes, puedo cambiar las cosas rápidamente y en apenas 20 segundos.

Explicaré la situación con cifras, ésta vez, para hacerlo todo más intuitivo:

En casa usamos servidor DHCP, con lo que no hace falta introducir IP

En el trabajo/empresa/cualquier otro sitio no existe servidor DHCP, con lo que habrá que introducir las direcciones estáticamente. Como ejemplo, pondré estas:

Dirección IP: 192.168.16.2
Máscara de red: 255.255.255.0
Puerta de enlace predeterminada: 192.168.16.1
Servidor DNS primario: 80.58.61.250
Servidor DNS secundario: 80.58.61.254

Planteado el problema, haremos la solución.

Por consola de comandos, existe un pequeño programa llamado netsh, cuyo propósito es la configuración de la red mediante líneas de comandos.

Netsh ofrece variedad de opciones, como la configuración de interfaces de red, mostrar las redes a las que nos hayamos conectado, entre otras. Nosotros solo nos vamos a centrar en una opción sencilla: Interface.

Dentro de Interface se ofrece la posibilidad de configuración de IP, especificando siempre cuál es la conexión a modificar. La variable es IP

Dentro de la variable IP existen otros comandos, como Add, Set, Delete... Nos vamos a concentrar en la variable Set, que será la que nos ayude. Como lo que vamos a cambiar es una dirección, la sintaxis exacta dentro de ésta variable es Set Address

Ahora, debemos especificar cuál adaptador es el que vamos a modificar. Comúnmente, será el llamado "Conexión de Área Inalámbrica". Llegado a este punto, haré una advertencia:

Cambiad el nombre del adaptador de red, o, al menos, quitadle los acentos. Eso evitará problemas innecesarios al ejecutar el archivo. En vez de llamarse "Conexión de Área Inalámbrica", que se llame "Conexion de Area Inalambrica", así no habrá mucho problema al ejecutarlo. (Explicación: cmd no usa bien la codificación de caracteres, y cuando ejecutamos el archivo por lotes cambia los caracteres especiales [acentos], con lo que si quitamos los acentos y lo ponemos totalmente "plano", así evitamos problemas)

Una vez especificado el adaptador, debemos decirle al programa que la asignación es estática y la dirección IP, máscara de subred y puerta de enlace. La variable aquí entonces es static 192.168.16.2 255.255.255.0 192.168.16.1

A modo resumen: Para añadir la dirección 192.168.16.2 a nuestra tarjeta de red, habrá que poner:

netsh interface ip set address "Conexion de Area Inalambrica" static 192.168.16.2 255.255.255.0 192.168.16.1


Para los servidores DNS, aplicaremos otro contexto no muy distinto.

Como lo que vamos a hacer es agregar un servidor DNS a la lista, en vez de Set, Será Add la variable a usar. La variable Static del final tampoco es necesaria. Lo que nos debe de quedar para la asignación de la dirección DNS primaria es:

netsh interface ip add dns "Conexion de Area Inalambrica" 80.58.61.250

Para la dirección secundaria, haremos una pequeña variación. Colocaremos la dirección IP y luego index=2, referenciando que es secundaria.

netsh interface ip add dns "Conexion de Area Inalambrica" 80.58.61.6254 index=2

Una vez tenemos los comandos, lo más simple es guardarlos en un documento de texto para que no se olviden ¿No? Nosotros lo haremos más efectivo. Haremos un archivo ejecutable por lotes para ejecutarlo y que no haga falta introducir tanto chorizo por comandos.

En un documento de texto, añadimos los valores de antes:

netsh interface ip set address "Conexion de Area Inalambrica" static 192.168.16.2 255.255.255.0 192.168.16.1
netsh interface ip add dns "Conexion de Area Inalambrica" 80.58.61.250
netsh interface ip add dns "Conexion de Area Inalambrica" 80.58.61.6254 index=2

Lo guardamos, pero con la extensión .bat, para marcar que es un archivo por lotes.
Por ejemplo, Static.bat.


Ahora, cuando queramos tener esas direcciones, ejecutamos este pequeño archivo y configura el adaptador sin necesidad de ir a Conexiones de red y todo el rollo.


Hemos aprendido a hacer que sea estático ¿Pero y que sea DHCP, para cuando lleguemos a casa? La respuesta, ahora mismo.

Modificaremos solo las variables del final. En la de asignación de IP, en vez de static, irá la palabra dhcp, quedando así:

netsh interface ip set address "Conexion de Area Inalambrica" dhcp

La de DNS tendrá un ligero cambio. Ahora no es Add, sino Set, y en vez de las direcciones IP irá, como bien adivinaréis, dhcp

netsh interface ip set dns "Conexion de Area Inalambrica" dhcp

Hacemos un nuevo documento de texto, ahora con otro nombre, pero la misma extensión
Por ejemplo, dhcp.bat


Y listo. Ahora tienes la capacidad de cambiar de una a otra simplemente ejecutando un fichero .bat

PD: Necesitarás, obviamente, permisos de administrador. En Windows 7, Vista o similar, en vez de ejecutarlo con doble clic, pulsar botón derecho y "ejecutar como administrador", y listo.

Fuente:
Datos recopilados de Microsoft
Experiencias propias trasteando con el programita

No hay comentarios:

Publicar un comentario

Comenta si te gustó la entrada, algún error que tenga, o simplemente entra a debatir si tienes algún problema, pues recuerda que aquí todo es posible y nada es seguro (Y a lo mejor a mí se me ha podido ir la pinza y escribir algo mal)

Por favor, sé conciso y ten buena escritura, que aquí no se cobra por letras ni palabras a usar. Los comentarios estilo HOYGAN o descalificativos no serán publicados.