
Ich möchte einige Bereiche auf meinem Windows 7-Desktop portweiterleiten. Am liebsten würde ich dafür ein Desktop-Dienstprogramm verwenden, aber ich konnte keins finden außer diesem:http://www.quantumg.net/portforward.php
Allerdings werden Portnummern und keine Portbereiche akzeptiert. Wenn ich also 10.000 Ports weiterleiten muss, muss ich 10.000 Einträge hinzufügen.
Gibt es einen besseren Weg? Befehlszeilenprogramme und Skripte sind genauso gut, sofern welche verfügbar sind.
Antwort1
Ich habe keine guten Alternativen gesehen, aber ich habe eine Idee.
Mit dem von Ihnen erwähnten Programm können Sie aus einer Textdatei laden, die Informationen zu Port, Ziel und lokalem Port enthält.
Es wäre ziemlich einfach, ein Programm zu schreiben, das diese Informationen in einer Textdatei ausgibt, wenn bestimmte Bereiche angegeben sind. Sie können die Textdatei dann in das von Ihnen erwähnte Portweiterleitungsprogramm laden.
Hier ist ein Programm in Java, das ich gerade zusammengeschustert habe (tut mir leid, ich bin ein Programmieranfänger)
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();
}
}
Und erstellt eine Datei namens output.txt mit folgendem Inhalt:
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
...
Der Wert reicht von 50 bis 100 und die lokalen und Zielports sind gleich. Ändern Sie ihn nach Wunsch.
Antwort2
Als Erweiterung der Lösung von James T. finden Sie hier ein Batch-Skript:
etwas.cmd
FOR /L %G IN (50, 1, 100) DO ECHO %G 192.168.1.2 %G >> hi.txt
Erläuterung:
- 50 ist die Startzahl
- 1 ist der Schritt für jede Schleife
- 100 ist die Endzahl
Wenn Sie den Portbereich am Ziel „verschieben“ möchten (z. B. 50–100 an der Quelle, 100–150 am Ziel), verwenden Sie dieses Batch-Skript:
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%G IN (50, 1, 100) DO (
set /a dest=%%G+50
ECHO %%G 192.168.1.2 !dest! >> hi.txt)
Der Leitungssatz /a dest=%%G+50
legt Ihren Abstand von den Quellports fest.
Wenn Sie ein längeres, aber einfacher zu wartendes Skript wünschen:
@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%)