• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Записать диапазоны в массив и сравнить с текущим Ip

  • Автор темы Shouldercannon
  • Дата начала
S

Shouldercannon

Уважаемые форумчане, помогите пожалуйста реализовать следующее. Задача заключается в том, чтобы загрузить из файла диапазоны IP и сравнить их с IP присоединяющегося. Файл *.cfg с таким содержимым:
3
127.0.0.0
127.0.0.255
128.0.0.0
128.0.0.255
129.0.0.0
129.0.0.255

При чтении командой ReadLn, в первой строке глубина цикла, от 1 до этого значения. Затем, в цикле подряд два оператора чтения ReadLn, первый сохраняет в запись ячейки "От", второй в запись "По". Сам массив от 1 до значения, что считано с первой строки файла.
 
S

sinkopa

Код:
uses
WinSock;

Функции
Код:
// Преобразует строковый IP в LongInt
function inet_addr(cp: PChar): u_long; stdcall; 

//преобразует IP кодиованный в LongInt к строке вида XXX.XXX.XXX.XXX
function inet_ntoa(inaddr: TInAddr): PChar; stdcall;
// Используем так:
var
s: PChar;
cIp: Integer; // кодированный IP
begin
...
s := inet_ntoa(@cIp);
...
end;

следующий код поможет Вам построить массив в указанном диапазоне подсети
Код:
uses
WinSock;
...
type
TSubNetArray = array of Integer;

...

function GetIPSubNet(SubNet: string; IPFtom,IPTo: Integer): TSubNetArray;
var
i: Integer;
s: string;
begin
for i := IPFtom to IpTo do
begin
s := SubNet + '.' + IntToStr(i);
SetLength(Result,Length(Result)+1);
Result[High(Result)] := inet_Addr(PChar(s));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
IPSubNet: TSubNetArray;
begin
IPSubNet := GetIPSubNet('127.0.0',1,255);
...
end;
Ну а дальше... "напильником"... :please:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!