Intervalos de encaminhamento de porta no Windows 7

1

Gostaria de avançar alguns intervalos no meu Windows 7 Desktop. Idealmente, eu gostaria de usar um utilitário de desktop para essa finalidade, mas não consegui encontrar um, exceto este: link

No entanto, aceita números de porta e não intervalos de porta. Então, se eu precisar encaminhar 10000 portas, terei que adicionar 10.000 entradas.

Existe uma maneira melhor? Os utilitários e scripts de linha de comando são tão bons quanto os disponíveis.

    
por sharjeel 01.08.2011 / 11:09

2 respostas

3

Não vi alternativas boas, mas tenho uma ideia.

O programa que você mencionou permite carregar de um arquivo de texto preenchido com informações de porta, destino e porta local.

Seria muito fácil escrever um programa que envia essas informações para um arquivo de texto com alguns intervalos. Você pode então carregar o arquivo de texto no programa de encaminhamento de porta que você mencionou.

Aqui está um programa em Java que eu apenas colei (desculpe, eu sou um programador iniciante)

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();
    }
}

E cria um arquivo chamado output.txt com o seguinte:

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
...

Vai de 50 a 100 e as portas locais e de destino são as mesmas. Modifique como desejar.

    
por 01.08.2011 / 12:05
3

Estendendo a solução do James T, aqui está um script em lote:

something.cmd

FOR /L %G IN (50, 1, 100) DO ECHO %G 192.168.1.2 %G >> hi.txt

Explicação:

  • 50 é o número inicial
  • 1 é a etapa de todo loop
  • 100 é o número final

Se você quiser "mover" o intervalo de portas no destino (ex: 50-100 na origem, 100-150 no destino), use este script em lote:

setlocal ENABLEDELAYEDEXPANSION 
FOR /L %%G IN (50, 1, 100) DO ( 
set /a dest=%%G+50 
ECHO %%G 192.168.1.2 !dest! >> hi.txt) 

O conjunto de linhas /a dest=%%G+50 define sua distância das portas de origem.

Se você quiser um script mais longo, mas mais fácil de manter:

@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%) 
    
por 01.08.2011 / 14:23