Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinSock2 на чистом API без форм! Может у кого заволялось? [D6, D7, Win95/98, WinXP]


NikNet ©   (2005-04-14 07:14:00) 

Мастера!
Нужен простненьки Client/Server на чистом WinSock/WinApi
без всяких Forms,Classes,SysUtils

???

PLIZZZZZZZZ?


NikNet   (2005-04-15 18:48:00) [1]

Нафиг мне этот сканер НУЖЕН я же простым языком написал
Client/Server!!!

2Verg
Что бы меньше занимал!


Verg   (2005-04-14 19:30:00) [2]

И кто вас заставляет этой профонацией, типа "на чистом", заниматься?

"Чистоборцы" хреновы...

Только не лезьте в сети...


Digitman   (2005-04-14 13:34:00) [3]


> Virus.exe ©   (14.04.05 13:00) [3]


ну и где тут "чистый API" ?
использование SysUtils ужепредполагает "грязь".


Virus.exe   (2005-04-14 13:00:00) [4]


program scan;

{$APPTYPE CONSOLE}

{ Для использования winsock необходимо описать этот модуль в uses. }
uses
 sysutils,winsock;

{ дефолтовый порт Socks прокси. Сюда можно вписать любой порт,
превратив наш сканнер, к примеру, в httpd (80 порт) сканнер. }
const
 port = 1080;

{ Здесь объявляем переменные }
var
 D:WSAData;
 S:TSocket;
 A:TSockAddr;
 m1,m2,mask,val:String;
 i:Integer;
begin
 { Если наш сканер запущен без параметров, выводим некоторую информацию.. }
 if paramcount < 1 then
 begin
   writeln('Socks Scanner by har0n, har0n@gmx.net');
   writeln('Example: scan.exe 127.0.0 1-255');
   writeln(' http://www.security.net.tf');
 exit;
end
else
{ Если сканер запущен с параметрами, в переменную mask заносим 1-ый параметр,
в val 2-ой параметр }
begin
 mask:=paramstr(1);
 val:=paramstr(2);
 { Определяем диапазон сканирования}
 m1:= copy(val,1,pos('-',val)-1);
 m2:= copy(val,pos('-',val)+1,length(val));
 writeln('- Scanning begin: '+mask+'.'+m1+' - '+mask+'.'+m2+' -');
 writeln;
 { Если WSAStartup() возвращает не нулевое значение, выводим сообщение об ошибке
 и выходим из программы}
if WSAStartup($101,D)<>0 then
begin
 writeln('error..');
 exit;
end;
{ Начинаем процесс сканирования }
for i:= strtoint(m1) to strtoint(m2) do
begin
 { Определяем тип семейства сокетов, и IP адрес для сканирования }
 A.sin_family:=AF_INET;
 A.sin_addr.S_addr:=inet_addr(pchar(mask+'.'+inttostr(i)));
 { Создаем сокет }
 S:=socket(AF_INET,SOCK_STREAM,0);
 { Если возвращено значение INVALID_SOCKET, выводим сообщение об ошибке }
 if S=INVALID_SOCKET then
   writeln('socket error');
 { Определяем порт (задается константой) }
 A.sin_port:=htons(port);
 { Пытаемся подконнектиться, если удачно - выводим сообщение, что порт открыт,
 в другом случае - сообщение о том, что порт закрыт (или недоступен) }
 if connect(S,A,sizeof(A))=0 then
   writeln(mask+'.'+inttostr(i)+' port '+inttostr(port)+' opened') else
 writeln(mask+'.'+inttostr(i)+' port '+inttostr(port)+' closed');
end;
{ Завершаем работу с сокетами }
WSACleanup;
writeln;
writeln('- Scanning is completed -');
end;
end.

Пример взят с DelphiWorld


atruhin   (2005-04-14 12:04:00) [5]

А поисковик ни один не знаешь? В инете масса статей с примерами.


Digitman   (2005-04-14 08:55:00) [6]


> простненьки


"простненьки" - это как ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо