InicioInfoAbrir puertos usando una script - uPNP
Abrir puertos usando una script - uPNP


Te voy a mostrar como se hace para abrir puertos usando una Script VBS en una Aplicación HTA.
Esto nos permite abrir y cerrar puestos con una aplicación simple y fácil de usar, sin necesidad de entrar a la pagina de nuestro modem o router.

INTRO

Si te interesan las script y la programación podes ver estos posts:




Una Miradita a la APP Fucnionando

Cuando la aplicación se inicia se abre una ventana y queda así:

script


Luego de que se detectan los dispositivos que tienen habilitado el uPNP se ve algo así:

puertos


Luego se selecciona el dispositivo al cual le queremos abrir los puertos y se ve esto:

vbscript

El código de la aplicación

Si quieres tener esta aplicacion en tu pc solo debes abrir un notepad, o block de notas o cualquier editor de textos copiar y pegar el codigo y grabarlo como upnp.hta, luego lo ejecutas y sin cambiar nada funciona para cualquier modem con uPnp activo.

Si utilizas esta script en otro sitio te pido que hagas una referencia a esta página.

Para quienes les interesa el código la script está auto documentada, lo básico así que te será fácil modificarla.


<Script language="VBScript">

Dim deviceFinder
Dim devices(10)
Dim CurrentID
Dim CurrentDevice
Dim GateWayService
Dim findData
Dim ds
dim DeviceCount

Set deviceFinder = CreateObject( "UPnP.UPnPDeviceFinder" )

sub window_onLoad
   ds=""
   window.resizeto 800,400
   DeviceCount=0
   StartFind()
end sub



'Esta funcion comienza la busqueda asincronica de dispositivos uPnp
'lo hace dependiendo de tipo de dispositivo a buscar
'en este caso se usa urn:schemas-upnp-org:service:Layer3Forwarding
' pero se puede usar tambien 
'
Sub StartFind()
  findData = devicefinder.CreateAsyncFind( "urn:schemas-upnp-org:service:Layer3Forwarding:1",0,GetRef("DeviceFinderCallback";))
  devicefinder.StartAsyncFind(findData)
End Sub

' esta funcion es llamada por el s.o. cada vez que se encuentra un dispositivo uPnp
' dependiendo del critero de busque utilizado 
' tambien se llama cuando se termina la busqueda
'
Sub DeviceFinderCallback (device, UDN, calltype)
  Select case calltype
    Case 0
      DeviceCount=DeviceCount+1
      ds=ds+"<option value=" & DeviceCount & ">" & Device.FriendlyName & "</option>"
      Set Devices(DeviceCount)=Device
    Case 1
      MsgBox "device removed: " & UDN

    Case 2
       UpdateList()
    end select
End Sub

'esta funcion se encarga de redibujar la pagina una vez que estan los dispositivos encontrados
'
Sub UpdateList()
   Document.body.innerHtml=_
"<form name=""SelectDevice"">"+_
"      <select id=""Devices"" Name=""Devices"" onchange=SelectDevice()>"+_
"         <option value=0> Seleccione un Dispositivo </option> "+_
ds+_
"      </select>"+_
"   </form>"+_
"   <form name=""puertos"">"+_
"      Seleccione"+_
"   </form>"

End Sub

' esta funcion se ejecuta cada vez que se selecciona un dispositivo de la lista desplegable
'
Sub SelectDevice()
   CurrentId=cint(document.SelectDevice.Devices.value)
   if CurrentId=0 then
      document.Forms("Puertos";).innerHTML=""
   Else
      set CurrentDevice = Devices(CurrentId)
      ShowData CurrentDevice
   End If
End Sub


' esta funcion llama a otra que muestra los puertos abiertos en el modem 

Sub ShowData(dv)
   dim dvc
   if dv.HasChildren then
       for each dvc in dv.children      
           if dv.HasChildren then
              for each dvc1 in dvc.children      
                 Showports dvc1
              Next
           End If
       Next
   end if
End Sub

' esta funcion muestra elemento por elemento los puertos abiertos
'
Function GetWanConn(inService)
   Dim retVal, emptyArgs(0), outArgs(20) 
   dim Args(1),oargs(8)
   dim indice
   dim entries
   s=""

   on error resume next
   s=s+"<table border= 1><tr><td>Puerto Externo</td><td>protocolo</td><td>Puerto Interno</td><td>Ip Local</td><td>Descripcion</td><td></td></tr>"
   s=s+"<tr>"
   s=s+"<td><INPUT TYPE=text NAME=p01></td>"
   s=s+"<td><SELECT NAME=p02><OPTION VALUE=TCP>TCP<OPTION VALUE=UDP>UDP</SELECT></td>"
   s=s+"<td><INPUT TYPE=text NAME=p03></td>"
   s=s+"<td><INPUT TYPE=text NAME=p04></td>"
   s=s+"<td><INPUT TYPE=text NAME=p06></td>"
   s=s+"<td><INPUT TYPE=Button NAME=Botonagregar VALUE=Add onClick=agregar()></td></tr>"

   retval = 0
   indice = 0
   Args(0) = "1"

   while ( retval = 0 )
      Args(0) = indice
      retVal = inService.InvokeAction("GetGenericPortMappingEntry", Args,oArgs) 
      if err <> 0 then
         retval = 1
      else
         s=s+CSTR(RETVAL)
         if ( retVal = 0 ) then
            s=s+"<tr><td>" & cstr(oargs(1)) & "</td><td>"& oargs(2) & "</td><td>"& cstr(oargs(3)) & "</td><td>"& oargs(4) & "</td><td>"& oargs(6) & "</td>"
            s=s+"<td><INPUT TYPE=Button NAME=Boton"& indice &" VALUE=Delete onClick=Borrar(" & indice & ")></td>"
            s=s+"</tr>"
            indice = indice + 1
         end if
      end if
   wend


   s=s+"</table>"

   on error goto 0

   GetWanConn=s
   Set GateWayService=inService
End Function

'esta funcion verifica los servicios del dispositivo 
' y llama a la funcion que muestra los datos del servicio
' se filtran solo los servicios de forwarding de puertos
'
Sub ShowPorts(inDevice) 
   dim service

   s=""
   
   For each service in inDevice.Services 
       If (service.ServiceTypeIdentifier = "urn:schemas-upnp-org:service:WANIPConnection:1") Then 
          s=s+GetWanConn(service) 
       End If
   Next 

   document.Forms("Puertos").innerHTML=s

End Sub

' Esta funcion se ejecuta cada vez que se agrega un nuevo puerto
' es cuando pulsmos el boton add
'
sub agregar()
   dim Args(8),oargs(1)

   args(0) = "0.0.0.0"
   args(1) = document.forms("Puertos").elements("p01").value
   args(2) = document.forms("Puertos").elements("p02").value
   args(3) = document.forms("Puertos").elements("p03").value
   args(4) = document.forms("Puertos").elements("p04").value
   args(5) = true
   args(6) = document.forms("Puertos").elements("p06").value
   args(7) = 0
   
   retVal = GateWayService.InvokeAction("AddPortMapping", Args,oArgs)
   ShowData(CurrentDevice)
end sub

<html>
<head>
<title>Port Forwarding App by @NeCroS</title>
<HTA:APPLICATION
  APPLICATIONNAME=" [email protected] "
  ID="ModemStatus"
  VERSION="1.0"
  SCROLL="yes"
  SINGLEINSTANCE="yes"
  'CAPTION="no"
  INNERBORDER="no"
  MAXIMIZEBUTTON="no"
  MINIMIZEBUTTON="no"
  SELECTABLE = "no"
  BORDER="Dialog"
/>
</head>
<body>
   Espera un cacho...<br>
   si querés quí ponele un gif animado...
</body>
</html>



En mi caso probé la APP con un router WiFi Tp-Link TL-WR743ND



Abrir puertos


upnp



  • Compartir el post estaría muy bueno.
  • Me costó un huevo hacer ásta script.
  • No sean forros y dejen un comentario.
  • Si se les caen algunos puntos no estaría de más
  • No comenten "mejor uso ...." porque la idea es aprender como se hace.
  • Si, si, es una porong@ el vbscript, pero con esto pueden probar sin instalar nada.
  • No comenten "el protocolo uPnp es inseguro ... bla bla bla ", Windows es inseguro y lo mismo se usa
  • Si usan la scrip o la comparten en otras paginas, mencionen el link a esta página
  • Si no les funciona y me mandan un mp mencionen el modelo y marca del router o modem
  • Buenisimo si se les cae una idea y aportan algo bueno para el post
  • Despues de un tiempo me quitan la edicion y no puedo incluir nada en el post
Datos archivados del Taringa! original
146puntos
953visitas
32comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000
32 Comentarios archivados
Del Taringa! original
N@NeCroSanonimut11/1/2016+0-0
@ entras en zonavirus punto com y te bajas el EliStarA, lo descomprimes en una carpeta, la clave del comprimido es zonavirus, y luego lo ejecutas y le das que si a todo, en la ulltima ventana pones escanear y esperas a que termine. Listo pc sin spyware ni virus.
N@NeCroSanonimut11/1/2016+0-0
@ entras en zonavirus punto com y te bajas el EliStarA, lo descomprimes en una carpeta, la clave del comprimido es zonavirus, y luego lo ejecutas y le das que si a todo, en la ulltima ventana pones escanear y esperas a que termine. Listo pc sin spyware ni virus.
a@anonimut10/31/2016+1-0
che master te hago una consulta .Estoy estudiando Resdes Cisco. Me entero de que en la pc usamos el 5 % de los 65535...

como que me asuste porque si yo uso a lo sumo el 80 , 21 ,23 ,25,443 etc NADA.... medio como que me asusta la idea de saber que tengo 65530 puertos potencilamente vulnerables.

¿no hay algun script que cierre TODOS los puertos menos los necesarios para navegar ?? Tengo windows xp y realmente creo que estoy sufriendo muchis…
a@anonimut10/31/2016+1-0
che master te hago una consulta .Estoy estudiando Resdes Cisco. Me entero de que en la pc usamos el 5 % de los 65535...

como que me asuste porque si yo uso a lo sumo el 80 , 21 ,23 ,25,443 etc NADA.... medio como que me asusta la idea de saber que tengo 65530 puertos potencilamente vulnerables.

¿no hay algun script que cierre TODOS los puertos menos los necesarios para navegar ?? Tengo windows xp y realmente creo que estoy sufriendo muchis…
f@feedfNeCroS9/26/2016+0-0
@ o si le queres abrir los puertos a alguien? jijij
f@feedfNeCroS9/26/2016+0-0
@ o si le queres abrir los puertos a alguien? jijij
D@DickStone_NeCroS9/26/2016+0-0
@ Ya.
D@DickStone_NeCroS9/26/2016+0-0
@ Ya.
N@NeCroS9/26/2016+0-0
ya se capo, este post es para aprender a usar el protocolo uPnp, es para que quienes hacen aplicaciones puedan abrir puertos sin necesidad de intervención del usuario, así como lo hace uTorrent o muchas otras aplicaciones.
N@NeCroS9/26/2016+0-0
ya se capo, este post es para aprender a usar el protocolo uPnp, es para que quienes hacen aplicaciones puedan abrir puertos sin necesidad de intervención del usuario, así como lo hace uTorrent o muchas otras aplicaciones.
D@DickStone_9/26/2016+0-0
Nah pero si se puede abrir puertos en un TP Link por ejemplo, terriblemente fácil.
D@DickStone_9/26/2016+0-0
Nah pero si se puede abrir puertos en un TP Link por ejemplo, terriblemente fácil.
o@oliverman9/26/2016+1-0
LAN y token ring no son lenguajes de progr, el lenguaje que usa el visual basic y basicamente crea una conexion con el router y le envia comandos, obviamente es para redes LAN
o@oliverman9/26/2016+1-0
LAN y token ring no son lenguajes de progr, el lenguaje que usa el visual basic y basicamente crea una conexion con el router y le envia comandos, obviamente es para redes LAN
T@TeLLeZCooL9/26/2016+0-0
serviría para lo mismo, que hacer NAT ???
T@TeLLeZCooL9/26/2016+0-0
serviría para lo mismo, que hacer NAT ???
l@lunieva9/26/2016+0-0
Podrias subirlo a mega u algun servidor? Por que no se lee completo el texto .salen los emojis de taringa.. van puntos igual.
l@lunieva9/26/2016+0-0
Podrias subirlo a mega u algun servidor? Por que no se lee completo el texto .salen los emojis de taringa.. van puntos igual.
T@TommyACN9/26/2016+1-0
con leer "abrir puertos" no se necesita ninguna descripcion mas, por que? porque es lo que te responden cuando queres crear un servidor para jugar con tus amigos. Si alguien no sabe que es pues sera q no lo necesita asi que para que toquetear el router, poco comun que alguien lo haga, si no tenes pensado hostear o tenes poca velocidad d subida es inservible y esta de adorno el panel.
T@TommyACN9/26/2016+1-0
con leer "abrir puertos" no se necesita ninguna descripcion mas, por que? porque es lo que te responden cuando queres crear un servidor para jugar con tus amigos. Si alguien no sabe que es pues sera q no lo necesita asi que para que toquetear el router, poco comun que alguien lo haga, si no tenes pensado hostear o tenes poca velocidad d subida es inservible y esta de adorno el panel.
H@Halcon2139/26/2016+2-0
Si el ciber tiene internet entra a x videos.. hacete una y relajate .. despues manda la compu a un tecnico... y bajate unas buenas pornos al celu porque vas a estar 1 semana sin computadora mientras te la formatean..
H@Halcon2139/26/2016+2-0
Si el ciber tiene internet entra a x videos.. hacete una y relajate .. despues manda la compu a un tecnico... y bajate unas buenas pornos al celu porque vas a estar 1 semana sin computadora mientras te la formatean..
A@ANALITICALSER9/26/2016+2-0
Lo hice y mi laptop se reinicio ,luego aparecio un aviso de FORMAT C: quedo en negro con un cursor titilando y ya tardo como 3 minutos y ahora no se como solucionarlo ,estoy escribiendo de un ciber ,que puedo hacer ?
A@ANALITICALSER9/26/2016+2-0
Lo hice y mi laptop se reinicio ,luego aparecio un aviso de FORMAT C: quedo en negro con un cursor titilando y ya tardo como 3 minutos y ahora no se como solucionarlo ,estoy escribiendo de un ciber ,que puedo hacer ?
f@feedf9/26/2016+1-0
buen post, le di mis puntos a un loco que queria salvar al mundo, pero bueno , en que lo progrmaste? lan token ring?
f@feedf9/26/2016+1-0
buen post, le di mis puntos a un loco que queria salvar al mundo, pero bueno , en que lo progrmaste? lan token ring?
o@olivermanNeCroS9/26/2016+1-1
@ primero debes poner la imagen del router que usas, segundo debes empezar con el 'para qué se usa los puertos uPNP', luego recien empiezas con la solucion, ya que la mayoria[me incluyo] no sabe para que se hace eso, finalmente si haces un video facil llegas a toppost
slds
o@olivermanNeCroS9/26/2016+1-1
@ primero debes poner la imagen del router que usas, segundo debes empezar con el 'para qué se usa los puertos uPNP', luego recien empiezas con la solucion, ya que la mayoria[me incluyo] no sabe para que se hace eso, finalmente si haces un video facil llegas a toppost
slds
L@Lucas_119/26/2016+1-0
One Piece Manga 842: "El poder de la llenura"
L@Lucas_119/26/2016+1-0
One Piece Manga 842: "El poder de la llenura"
g@geeerax149/25/2016+1-10
Este post no tiene comentarios, Soyez le premier!
g@geeerax149/25/2016+1-10
Este post no tiene comentarios, Soyez le premier!

Autor del Post

N
NeCroS🇦🇷
Usuario
Puntos0
Posts27
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.