
Me gustaría reenviar algunos rangos en mi escritorio de Windows 7. Lo ideal sería utilizar una utilidad de escritorio para este propósito, pero no pude encontrar ninguna excepto esta:http://www.quantumg.net/portforward.php
Sin embargo, acepta números de puerto y no rangos de puertos. Entonces, si tengo que reenviar 10.000 puertos, tendré que agregar 10.000 entradas.
¿Existe una mejor manera? Las utilidades de línea de comandos y los scripts son tan buenos si hay alguno disponible.
Respuesta1
No vi ninguna buena alternativa, pero tengo una idea.
El programa que mencionaste te permite cargar desde un archivo de texto lleno de información de puerto, destino y puerto local.
Sería bastante fácil escribir un programa que genere esta información en un archivo de texto dados algunos rangos. Luego puede cargar el archivo de texto en el programa de reenvío de puertos que mencionó.
Aquí hay un programa en Java que acabo de armar (lo siento, soy un programador novato)
package portforwardranges;
import java.io.File;
import java.io.PrintWriter;
public class PortForwardRanges {
PortForwardRanges(){
try {
PrintWriter pw = new PrintWriter(new File("output.txt"));
for (int i = 50; i <= 100; i++){
pw.print(i);
pw.print(" 192.168.1.2 ");
pw.print(i);
pw.println();
}
pw.close();
} catch (Exception ex) {
System.out.println(ex);
}
}
public static void main(String[] args) {
PortForwardRanges app = new PortForwardRanges();
}
}
Y crea un archivo llamado salida.txt con esto:
50 192.168.1.2 50
51 192.168.1.2 51
52 192.168.1.2 52
53 192.168.1.2 53
54 192.168.1.2 54
...
Pasa de 50 a 100 y los puertos locales y de destino son los mismos. Modifícalo como desees.
Respuesta2
Ampliando la solución de James T, aquí hay un script por lotes:
algo.cmd
FOR /L %G IN (50, 1, 100) DO ECHO %G 192.168.1.2 %G >> hi.txt
Explicación:
- 50 es el número inicial
- 1 es el paso para cada bucle
- 100 es el número final
Si desea "mover" el rango de puertos en el destino (por ejemplo, 50-100 en el origen, 100-150 en el destino), utilice este script por lotes:
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%G IN (50, 1, 100) DO (
set /a dest=%%G+50
ECHO %%G 192.168.1.2 !dest! >> hi.txt)
El conjunto de líneas /a dest=%%G+50
establece su distancia desde los puertos de origen.
Si desea un script más largo pero más fácil de mantener:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set start=150
set step=5
set end=200
set destdistance=-50
set ip=192.168.1.2
set outputfile=output.txt
FOR /L %%G IN (%start%, %step%, %end%) DO (
set /a dest=%%G%destdistance%
ECHO %%G %ip% !dest! >> %outputfile%)