Главная страница
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.025 c
11-1078653027
Nils
2004-03-07 12:50
2004.08.15
Incopatible types: TKOLStGrd and PStGrd - что делать???


4-1089026487
lister
2004-07-05 15:21
2004.08.15
Внешним ползунком двигать текст в MEMO


3-1090247645
sergvc
2004-07-19 18:34
2004.08.15
как добавить в DataSet колонку не связанную с данными для временн


1-1091438001
Lizard
2004-08-02 13:13
2004.08.15
Управлять динамически созданными окнами


4-1088943883
beetlehead
2004-07-04 16:24
2004.08.15
Как в XP выключить комп???