Ищу консольный сканер портов на Delphi или С++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Sharky, 3 Nov 2008.

  1. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ппц стока флуда по такой теме.
    Банальнее не придумаешь на WinSock мож не так оптимально но легко сделать.
    1) Создал массив на N элементов. каждый элемент - структура IP, Socket, Число проверок.
    2) Создаешь N сокетов
    3) переводишь их в неблокирующий режим
    4) записываешь их в массив. в пустое место. и записывашь туда IP адрес
    5) делаешь коннект с каждого сокета
    6) Далее гоняешь цикла
    7) Пробегаешься по всем элементам
    - select на очередной сокет, без тайматуа
    - если норм коннект, то закрываешь соедиениение и добавляешь что IP и порт открыты
    - если дисконнект, то закрываешь соедиенение
    - если таймаут, то увеличиваешь счетчик для этого сокета
    - если счетчик = Z - макс число проверок. то закрываем сокет
    - если сокет был закрыт, то на его место в массиве помещается новый, на который тоже уже сделан коннект
    и так пока не достигнешь конца.
    После каждлй итерация цикла первого - делать паузу в 50 мс.
    т.е. если макс таймаут на коннект надо сделать 20 сек, то выходит что Z = 400

    самый простой способ. реализуется очень быстро и требует минимум знаний. кода совсем чуть чуть.