Что нового

Преобразование IP диапазонов в список IP

Tyonas

Новичок
Сообщения
4
Репутация
1
AutoIt: 3.3.10.2
Версия: 0.1

Категория: Вспомогательные функции, Строки, Данные, Интернет, Разное

Описание: преобразование IP диапазонов в список IP.

Код/Пример:
Код:
Opt("MustDeclareVars", 1)

Global $File, $Ip2, $Time, $Cnt = 0
Global $FileStr = @ScriptDir & "\IP LIST.txt"
Global $Ip[4][2] = [["0.0.0.0", "0.0.0.2"], ["0.0.0.3", "0.0.0.5"], ["0.0.0.6", "0.0.0.8"], ["0.0.0.9", "0.0.1.11"]]
#cs Преобразование IP диапазонов в список IP.
Global $Ip[<кол-во диапазонов>][2]
В конце файла остается пустая строка.
0.0.0.0 - 0.0.0.2
0.0.0.3 - 0.0.0.5
0.0.0.6 - 0.0.0.8
0.0.0.9 - 0.0.0.11
=
0.0.0.0
0.0.0.1
0.0.0.2
0.0.0.3
0.0.0.4
0.0.0.5
0.0.0.6
0.0.0.7
0.0.0.8
0.0.0.9
0.0.0.10
0.0.0.11
#ce

$File = FileOpen($FileStr, 1) ; Запись в конец файла. Если файла нет - создается. ANSI.
$Time = TimerInit()
For $i = 0 To UBound($Ip)-1
   $Ip2 = StringSplit($Ip[$i][0], ".")
   For $j = $Ip2[1] To 255
	  For $k = $Ip2[2] To 255
		 For $l = $Ip2[3] To 255
			For $m = $Ip2[4] To 255
			   FileWriteLine($File, $j & "." & $k & "." & $l & "." & $m)
			   $Cnt += 1
			   If $j & "." & $k & "." & $l & "." & $m = $Ip[$i][1] Then
				  ExitLoop 4
			   EndIf
			Next
			$Ip2[4] = 0
		 Next
		 $Ip2[3] = 0
	  Next
	  $Ip2[2] = 0
   Next
Next
FileClose($File)
MsgBox(0,'Готово!','Время: ' & Round(TimerDiff($Time)/1000) & " секунд." & @CRLF & "Кол-во: " & $Cnt & @CRLF & "Размер файла: " & Round(FileGetSize($FileStr)/1024/1024, 3) & " МБ")

Файл: см. вложения.

Снимок:
0.0.0.0-1.0.0.0
bed37e00e3279a219e9f80e04c8a6c10.png


История версий:
v.0.1 [2.04.14] - Первый релиз.

Источник: autoit-script.ru
Автор(ы): Tyonas
 

ыфвфы

Новичок
Сообщения
1
Репутация
0
Доброго времени суток, пытаюсь воткнуть в эту строку с диапазонами ip адресов порядка 4000 значений, позже 1000, пишет ошибку строки. Какой минимальный размер строки? Есть возможность считать из файла и обойти это ограничение? Спасибо.
Общей информации будет достаточно.

Извините, уже нагуглил, было достаточно:

Global $Ip = @ScriptDir & "\listall.txt"
 
Последнее редактирование:
Верх