Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.054 c
3-1090310952
Geoji
2004-07-20 12:09
2004.08.15
Дата


3-1090583655
Крысолов
2004-07-23 15:54
2004.08.15
jpg, delphi и sql server (а ещё и TDBCtlGrid)


14-1091023259
}|{yk
2004-07-28 18:00
2004.08.15
Вот уроды!


14-1090916643
ИМХО
2004-07-27 12:24
2004.08.15
Опрос: самая красивая женщина (девушка) планеты


1-1091282791
Кириешки
2004-07-31 18:06
2004.08.15
Хочу сделать СУПЕРГЛАВНОЕ окно




   Наверх