Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: d3xf4ult en 18 Enero 2013, 22:27 pm



Título: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: d3xf4ult en 18 Enero 2013, 22:27 pm
Hola,

Tengo un problema con este batch.

Código:
netsh interface ip set dns "Conexi¢n de  rea local" static 69.135.1.30 register=primary
netsh interface ip add dns "Conexi¢n de  rea local" static 69.135.222.97 index=2
netsh interface ip add dns "Conexi¢n de  rea local" static 69.116.1.30 index=3

netsh interface ip set wins "Conexi¢n de  rea local" static 69.135.1.39
netsh interface ip add wins "Conexi¢n de  rea local" static 69.116.1.30

Las DNS solo me agrega la primera, pero la segunda alternativa y la tercera no.
Alguién sabe como es la sintaxis correcta?

Me pasa lo mismo con las WINS

Y otra cosilla, con el nombre "Conexión de área local"... Como podría hacer un if else, con esto?

Es decir, en el caso de que exista un adaptador con este nombre:
En que caso de que sea: "Conexión de área local" --> Haz esto
Y en caso de que sea: "Conexión de área local 2" --> haz esto otro.

Un Saludo  ;)
Gracias


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: Eleкtro en 19 Enero 2013, 11:15 am
La sintaxis cambia de WinXP a Win7, en WinXP debes usar IP, en win7 puedes configurar la ipv4 y la ipv6, infórmate sobre la sintaxis del NETSH de tu versión de Windows.

Código
  1. @Echo OFF
  2.  
  3. CHCP 1250 >NUL
  4. FOR /F "Tokens=3,* Delims= " %%A IN ('netsh interface show interface') DO (call :Netsh "%%B")
  5. Pause&Exit
  6.  
  7. :Netsh
  8. If "%~1"=="Conexión de área local"   (
  9. NETSH interface ipv4 set dns  "%~1" static "69.135.1.30"   register=primary
  10. NETSH interface ipv4 add dns  "%~1" static "69.135.222.97" index=2
  11. NETSH interface ipv4 add dns  "%~1" static "69.116.1.30"   index=3
  12. NETSH interface ipv4 set wins "%~1" static "69.135.1.39"
  13. NETSH interface ipv4 add wins "%~1" static "69.116.1.30"
  14. )
  15.  
  16. If "%~1"=="Conexión de área local 2" (
  17. )
  18. GOTO:EOF


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: d3xf4ult en 19 Enero 2013, 15:01 pm
Buenas EleKtro H@cker.

Podrías, si no es molestia, explicar un poco el script.

Sobre todo la primera parte,
Código:
CHCP 1250 >NUL
FOR /F "Tokens=3,* Delims= " %%A IN ('netsh interface show interface') DO (call :Netsh "%%B")
Pause&Exit


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: Eleкtro en 19 Enero 2013, 15:38 pm
Prueba tu mismo lo que pasa al usar el comando:
Código:
netsh interface show interface

Con el FOR obtengo los nombres de las interfaces, y llamo a una subrutina pasándole como argumento el nombre de cada interface,

Código:
*Si el argumento "%~1" es igual a "conexión de área local" (
     Hacer esto
)

Saludos


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: d3xf4ult en 19 Enero 2013, 16:16 pm
Bien, perfecto.

Podría hacer esto?

Código:
If "%~1"==("Conexión de área local" || "Conexión de área local 2")  (
NETSH interface ipv4 set dns  "%~1" static "69.135.1.30"   register=primary
NETSH interface ipv4 add dns  "%~1" static "69.135.222.97" index=2
NETSH interface ipv4 add dns  "%~1" static "69.116.1.30"   index=3
NETSH interface ipv4 set wins "%~1" static "69.135.1.39"
NETSH interface ipv4 add wins "%~1" static "69.116.1.30"
)

igualmente e independientemente de si es ip o ipv4 en WinXP,  nosé si falla en la sintaxis el "add" o el "index=2" y el "index=3", ya que solo me agrega 1 DNS y 1 WINS pero no más... en las opciones de los subcomandos no encuentro nada.


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: d3xf4ult en 19 Enero 2013, 20:31 pm
Por cierto, los servidores DNS alternativos (index=2 e index=3) no se agregan al igual que el segundo de WINS, solo se agregan el primero de cada los que llevan SET...

Miré en las guías technet, siguiendo las ayudas de sintaxis que establece microsoft pero nada...

Como puedo agregarlos entonces? si alguien sabe lo agradecería.


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: d3xf4ult en 22 Enero 2013, 00:57 am
Alguien sabe algo de por que esto no funciona correctamente?


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: Eleкtro en 22 Enero 2013, 06:37 am
No estoy familiarizado con agregar varias DNS, etc, pero aquí tienes varios ejemplos más al final de la página: http://ss64.com/nt/netsh.html


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: d3xf4ult en 22 Enero 2013, 15:14 pm
Gracias tio, ya lo he probado y lo que fallaba era que si estableces SET defines static, pero al añadir más DNS o WINS, es decir cuando utilizas ADD en vez de SET no es necesario decir que es estática (static), era tontería pero parece que windows discrimina escrupulosamente este detalle... jaja

Ahora, finalmente me queda que si existe "Conexión de área local" que haga eso y si no es ese y es "Conexión de área local 2", que haga lo mismo.

Valdría algo como esto?

Lo probé pero no funciona...

Sería posible establecer con un OR: Conexión de área local" || "Conexión de área local 2 ?

Código:
If "%~1"==("Conexión de área local" || "Conexión de área local 2")  (
NETSH interface ipv4 set dns  "%~1" static "69.135.1.30" register=primary
NETSH interface ipv4 add dns  "%~1" "69.135.222.97" index=2
NETSH interface ipv4 add dns  "%~1" "69.116.1.30" index=3
NETSH interface ipv4 set wins "%~1" static "69.135.1.39"
NETSH interface ipv4 add wins "%~1" "69.116.1.30"
)

Salu2


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: Eleкtro en 22 Enero 2013, 15:39 pm
Pero si arriba te puse un código de ejemplo!...  :xD

Cita de: Elektro H.
Código:
If "%~1"=="Conexión de área local"   (
    NETSH interface ipv4 set dns  "%~1" static "69.135.1.30"   register=primary
    NETSH interface ipv4 add dns  "%~1" static "69.135.222.97" index=2
    NETSH interface ipv4 add dns  "%~1" static "69.116.1.30"   index=3
    NETSH interface ipv4 set wins "%~1" static "69.135.1.39"
    NETSH interface ipv4 add wins "%~1" static "69.116.1.30"
)
 
If "%~1"=="Conexión de área local 2" (
    Pause
)


PD: El OR no se usa de esa manera, no puedes usarlo en una comparación, para eso ya tienes el ELSE

Ejemplo 1:
Código:
If "%~1"=="Conexión de área local" (GOOD) ELSE (BAD)

Ejemplo 2:
Código:
(Echo "%~1" | FIND "Conexión de área local" >NUL && (GOOD)) || (BAD)

Saludos


Título: Re: NETSH: Agregar varias DNS y WINS a la interface de red
Publicado por: mi162000 en 28 Febrero 2013, 16:18 pm
netsh interface ip set dns "nombre" static XXX.XXX.XXX.XXX register=primary
netsh interface ip add dns "nombre" XXX.XXX.XXX.XXX index=2

como veras en el agregado del segundo DNS no lleva la sintaxis STATIC, y si quieres agregar mas DNS, seria index=3