
Я хотел бы перенаправить несколько диапазонов на моем рабочем столе Windows 7. В идеале я хотел бы использовать для этой цели утилиту рабочего стола, но я не смог найти ничего, кроме этого:http://www.quantumg.net/portforward.php
Однако он принимает номера портов, а не диапазоны портов. Так что если мне нужно перенаправить 10000 портов, мне придется добавить 10000 записей.
Есть ли лучший способ? Утилиты командной строки и скрипты также хороши, если таковые имеются.
решение1
Я не видел хороших альтернатив, но у меня есть идея.
Программа, о которой вы упомянули, позволяет загружать данные из текстового файла, содержащего информацию о порте, пункте назначения и локальном порте.
Было бы довольно легко написать программу, которая выводит эту информацию в текстовый файл, задавая некоторые диапазоны. Затем вы можете загрузить текстовый файл в программу переадресации портов, о которой вы упомянули.
Вот программа на Java, которую я только что слепил (извините, я новичок в программировании)
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();
}
}
И создает файл с именем output.txt, содержащий следующее:
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
...
Он идет от 50 до 100, а локальный и конечный порты одинаковы. Измените его по своему усмотрению.
решение2
Продолжая решение Джеймса Т., вот пакетный скрипт:
что-то.cmd
FOR /L %G IN (50, 1, 100) DO ECHO %G 192.168.1.2 %G >> hi.txt
Объяснение:
- 50 — начальное число
- 1 — шаг для каждого цикла
- 100 — это конечное число
Если вы хотите «переместить» диапазон портов на целевом компьютере (например, 50-100 на источнике, 100-150 на целевом компьютере), используйте этот пакетный скрипт:
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%G IN (50, 1, 100) DO (
set /a dest=%%G+50
ECHO %%G 192.168.1.2 !dest! >> hi.txt)
Линейный набор /a dest=%%G+50
устанавливает расстояние от исходных портов.
Если вам нужен более длинный, но простой в использовании скрипт:
@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%)