PDA

Просмотр полной версии : [Руководство] Проверка по IP


Bосh
11.06.2012, 22:12
Всем доброго времени суток.
Например Вам нужно сделать проверку по IP. Если данный IP есть у вас на сайте в файле, то даем доступ к программе, если нету, то соответственно доступа не даем.
Сразу предупреждаю, код не очень ровный, набросал за 10минут. Но программа работает. Если нужно будет, меняем под себя.
Добавляем на форму idFTP1; id[Ссылки могут видеть только зарегистрированные и активированные пользователи] Edit1; Memo1; Button1; Button2;
Создаем в Файловом Менеджере на ucoz 2 файла, в одном будут забаненные IP, в другом IP, которым можно входить в программу.
*P.S Button2 для примера.
Ставим Edit1.ReadOnly - true; Button2.Visible - false
var
St:String;
Se:String;
S: TStringList;
Ban:String;
begin
id[Ссылки могут видеть только зарегистрированные и активированные пользователи]
try
St:=Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]');
Delete(St,1,pos('<big',St)+length('<big'));
Delete(St,pos('</big',St),length(St));
Edit1.Text:=St;
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('IP.txt');
IdFTP1.Username:= 'Логин FTP';
IdFTP1.Password:= 'Пароль FTP';
IdFTP1.Host:= 'Хост FTP';
IdFTP1.Passive:= True;
if IdFTP1.Connected then
IdFTP1.Disconnect
else
try
IdFTP1.Connect(True);
except
on E : Exception do
ShowMessage('Îê: '+E.Message);
end;
if IdFTP1.Connected then
try
IdFTP1.Put('IP.txt', 'IP.txt', True);
except
on E : Exception do
ShowMessage('Íåà: '+E.Message);
end;
DeleteFile('IP.txt');
IdFTP1.Disconnect;
Se:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('Ссылка на файл где будут IP'); // Проверяем, есть ли IP в файле
if Pos(Edit1.Text, Se)<>0 then
Memo1.Text:=('Вы найдены в базе. Можете зайти в программу.')
else
Memo1.Text:=('Вы не найдены в базе');
if Pos('Вы прошли проверку', Memo1.Text)<>0 then
Button2.Visible:=true
else
Button2.Visible:=false;
Ban:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('Ссылка на файл с IP где будут баны'); // Проверяем на бан
if Pos(Edit1.Text, Ban)<>0 then
Memo1.Text:=('Вы забанены');
if Memo1.Text='Вы забанены' then
Button2.Visible:=false;
except
on e:Exception do
end;
end;
Как видите, в коде есть многое, что можно заменить.
Алгоритм программы такой:
При нажатии на кнопку, на сайте(желательно использовать ucoz), создается файл под названием "IP.txt", туда будет отправляться IP пользователя, нажавшего кнопку(чтобы вам легче было ориентироваться, можете добавить доп. поле, куда пользователь будет вводить свой ник(с этим могу помочь, пишите в тему), далее в созданном файле для разрешенных IP, пишем IP пользователя, которому можно войти в программу, если вам нужно забанить пользователя, пишем в файле для банов IP, которые нужно забанить(действия запрета дописываете сами, в программе показан пример с кнопкой(с этим так же могу помочь, пишите в тему).
Программа построена на примере - "Чата на Ucoz".

Relli
11.06.2012, 22:19
Уж слишком муторно....
var
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
i,b : integer;
a:string;
Version:TStringList;
begin
a := getSerial;
[Ссылки могут видеть только зарегистрированные и активированные пользователи](nil);
Version:=TStringList.Create;
try
Version.text:=[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]******.ru/****.txt');
For i := 0 to Version.Count-1 do
begin
if a = Version[i] then
begin
ShowMessage('Данные верны');
Form1.Enabled;
b := 1;
break;
end;
end;
If b <> 1 then
begin
ShowMessage('Данные не верны');
Close();
end;
finally
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Version.Free;
end;
Так гораздо легче,просто немного подредактировать и все.
Просто создаете файл на юкозе,кидаете туда что нужно,и програ сравнивает данные,вбитые в нее и файл на серве,если есть совпадения,то все ок.
А Ip можно получить через компонент IdIPWatch(вкладка Indy Misc) через функцию IdIPWatch1.LocalIP

Steam~
13.06.2012, 20:32
Всем доброго времени суток.
Например Вам нужно сделать проверку по IP. Если данный IP есть у вас на сайте в файле, то даем доступ к программе, если нету, то соответственно доступа не даем.
Сразу предупреждаю, код не очень ровный, набросал за 10минут. Но программа работает. Если нужно будет, меняем под себя.
Добавляем на форму idFTP1; id[Ссылки могут видеть только зарегистрированные и активированные пользователи] Edit1; Memo1; Button1; Button2;
Создаем в Файловом Менеджере на ucoz 2 файла, в одном будут забаненные IP, в другом IP, которым можно входить в программу.
*P.S Button2 для примера.
Ставим Edit1.ReadOnly - true; Button2.Visible - false
var
St:String;
Se:String;
S: TStringList;
Ban:String;
begin
id[Ссылки могут видеть только зарегистрированные и активированные пользователи]
try
St:=Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]');
Delete(St,1,pos('<big',St)+length('<big'));
Delete(St,pos('</big',St),length(St));
Edit1.Text:=St;
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('IP.txt');
IdFTP1.Username:= 'Логин FTP';
IdFTP1.Password:= 'Пароль FTP';
IdFTP1.Host:= 'Хост FTP';
IdFTP1.Passive:= True;
if IdFTP1.Connected then
IdFTP1.Disconnect
else
try
IdFTP1.Connect(True);
except
on E : Exception do
ShowMessage('Îê: '+E.Message);
end;
if IdFTP1.Connected then
try
IdFTP1.Put('IP.txt', 'IP.txt', True);
except
on E : Exception do
ShowMessage('Íåà: '+E.Message);
end;
DeleteFile('IP.txt');
IdFTP1.Disconnect;
Se:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('Ссылка на файл где будут IP'); // Проверяем, есть ли IP в файле
if Pos(Edit1.Text, Se)<>0 then
Memo1.Text:=('Вы найдены в базе. Можете зайти в программу.')
else
Memo1.Text:=('Вы не найдены в базе');
if Pos('Вы прошли проверку', Memo1.Text)<>0 then
Button2.Visible:=true
else
Button2.Visible:=false;
Ban:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('Ссылка на файл с IP где будут баны'); // Проверяем на бан
if Pos(Edit1.Text, Ban)<>0 then
Memo1.Text:=('Вы забанены');
if Memo1.Text='Вы забанены' then
Button2.Visible:=false;
except
on e:Exception do
end;
end;
Как видите, в коде есть многое, что можно заменить.
Алгоритм программы такой:
При нажатии на кнопку, на сайте(желательно использовать ucoz), создается файл под названием "IP.txt", туда будет отправляться IP пользователя, нажавшего кнопку(чтобы вам легче было ориентироваться, можете добавить доп. поле, куда пользователь будет вводить свой ник(с этим могу помочь, пишите в тему), далее в созданном файле для разрешенных IP, пишем IP пользователя, которому можно войти в программу, если вам нужно забанить пользователя, пишем в файле для банов IP, которые нужно забанить(действия запрета дописываете сами, в программе показан пример с кнопкой(с этим так же могу помочь, пишите в тему).
Программа построена на примере - "Чата на Ucoz".

можно легко поймать сниффером логин и пароль , зайти на этот фтп и удалить свой айпи :noemotion:

Relli
13.06.2012, 20:44
Steam~, так тут же фтп вообще не нид)

Steam~
13.06.2012, 21:22
вообще не нид)
не понял

Relli
13.06.2012, 23:42
Steam~, получить содержимое текстового файла можно и без фтп...С ним только кода больше и действий

Steam~
14.06.2012, 11:03
Steam~, получить содержимое текстового файла можно и без фтп...С ним только кода больше и действий

я говорю про способ автора темы

Ginrey
02.07.2012, 23:02
чаще всего совершенная ошибка if true то проходишь регистрацию else не проходишь. на этом моменте отловить выполняемое действие и смотреть что требуется для него проще простого. лучше писать просто через if без else / или же с else но не использовать прямые значения