Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 19:48   #11
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

для этого вам надо узнать ip и маску вашего интерфейса, исходя из маски высчитать все допустимые Ip адреса в сети, затем циклом идти по этим адресам и пытаться "стучаться" на договоренный порт. В вкладке Indy Misc есть возможность получить ip адреса и маски интерфейсов.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.04.2009, 21:30   #12
xVitaliyx
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

Но это все равно получается банальный перебор по IP адресам.
Это я сделал уже только не могу понять как прикрутить таймаут к проверке неактивного адресса.
Я имел ввиду получить адресса всех компов из сетевого окружения. (Это реализовано в программе NetLook)
А не перебирать по маске.

Последний раз редактировалось xVitaliyx; 18.04.2009 в 16:53.
xVitaliyx вне форума Ответить с цитированием
Старый 17.04.2009, 21:39   #13
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

если реализовывали через Indy то выставление Timeout там присутствует во всех компонентах
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.04.2009, 21:48   #14
xVitaliyx
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

Нет через WinSock
Вот такая функция:
Код:
function PingPort(host:String;port:integer):boolean;
var
WSAData:TWSAData;
FSocket:TSocket;
addr:TSockAddr;
begin
addr.sin_family:=AF_INET;
addr.sin_addr.S_addr:=inet_addr(pansichar(host));
 if WSAStartup($101,WSAData)=0 then
   begin
   FSocket:=socket(AF_INET,SOCK_STREAM,0);
     if FSocket<>INVALID_SOCKET then
        begin
        addr.sin_port:=htons(port);
          if connect(FSocket,addr,sizeof(addr))=0 then
            begin
            result:=true;
            CloseSocket(FSocket);
            end;
        end;
   end;
 WSACleanup;
end;
xVitaliyx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передачи по сети файла Alar Работа с сетью в Delphi 4 07.02.2011 23:21
Работа программы в сети Irsis Microsoft Office Excel 4 21.10.2008 08:38
отключение звука у определенного муз. файла. bill Win Api 3 29.07.2008 10:41
Создание файла определенного типа Македонский Общие вопросы Delphi 12 06.09.2007 11:58