Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

проверка открытых портов (в частности UDP)   Найти похожие ветки 

 
RAshka ©   (2004-06-13 01:59) [0]

Вопрос - как, такие программы, как LanSpy, NetSecurityScan и др. выдают список всех открытых портов в течении 30 секунд (TCP и UDP). Пытался я открывать сокет функцией "socket", так если порт закрыт - программа подвисала более чем на 5 секунд, а просканировать 65K портов... это уже не шутка.

Также меня интересует, как проверить открыт ли UDP-порт (функцией socket это сделать не получается).

Вот пример кода (на всякий случай):


function process_CheckPort(strIP:String;port:Integer):Boolean;
var
  WSAData    : TWSAData;
  WrkSocket  : TSocket;
  SockAddrIn : TSockAddrIn;
begin
  Result:=false;

  if WSAStartup(WINSOCK_VERSION, WSAData) = NO_ERROR then
  begin
     ZeroMemory(@SockAddrIn, sizeof(SockAddrIn));
     WrkSocket:=socket(PF_INET, SOCK_STREAM, 0);
     SockAddrIn.sin_family:=AF_INET;
     SockAddrIn.sin_port:=htons(port);
     SockAddrIn.sin_addr.S_addr:=inet_addr(PAnsiChar(strIP));

     if WrkSocket<>INVALID_SOCKET then
     begin
        if connect(WrkSocket, SockAddrIn, sizeof(SockAddrIn))<>SOCKET_ERROR then
           Result:=true;
        CloseSocket(WrkSocket);
     end;

     WSACleanup;
  end;
end;


 
Verg ©   (2004-06-13 11:18) [1]

TCP сканеры портов используют множество сокетов в неблоуируюем режиме с мультиплекстированием.

Про UDP - можно узнать лишь только то, что какой-то порт закрыт и то не наверняка. Отправляются датаграммы на заданный порт и если возникает ошибка WSAECONNRESET, то этот порт точно никто не обслуживает в данный момент. А если ошибка не возникает, то.... то это ничего не значит :)) - то ли порт открыт, то ли ICMP с данного хоста не отправляются, то ли ICMP до твоего хоста не доходят и т.д....


 
Verg ©   (2004-06-13 11:49) [2]

Да, и вот еще что, для UDP ошибка WSAECONNRESET будет наблюдаться при попытке приема с сокета, через который была отправлена датаграмма.



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.049 c
14-1091015553
Nikolay M.
2004-07-28 15:52
2004.08.15
Задачка


3-1090486803
ZedeS
2004-07-22 13:00
2004.08.15
Номер строки в DBGrid


6-1087196537
Separator
2004-06-14 11:02
2004.08.15
закачка на FTP


14-1090819044
Ega23
2004-07-26 09:17
2004.08.15
Модераторам, создателям, или тем кто знает!


1-1091462234
ceval
2004-08-02 19:57
2004.08.15
как организовать цикл по Edit