Z
zuksoft
Hi у меня к вам мальнький вопросик...
Мне необходимо пропинговать диапазон IP адресов на наличее компьютеров в локальной сети.
Пробывал ics-компоненты-Пингует но очень медленно.
Пробывал компоненn TClientSocet-Он вообче отказывается видеть открытые порты под Windows XP SP2.
Пробывал через WinSock- вот что получилось
-----------------------------------------------------------------------------------
Все работает, но опять же медленно. Если комп в сети то он сразу ето выдает, если же его нет- то он виснит примероно на 20 сек.
Подскажите как правильно просканить сеть на наличее компов, или ка сделать так что бы моя функция если в течени 5 миллесекунд не находила компа, чтоб сама отрубалась.
Зарание большое СПАСИБО.
Мне необходимо пропинговать диапазон IP адресов на наличее компьютеров в локальной сети.
Пробывал ics-компоненты-Пингует но очень медленно.
Пробывал компоненn TClientSocet-Он вообче отказывается видеть открытые порты под Windows XP SP2.
Пробывал через 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(pchar(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;
procedure TForm1.ToolButton3Click(Sender: TObject);
begin
if PingPort('192.168.0.142',135)=true then ShowMessage('Типа потрт открыт, а значит комп в сети');
end;
Подскажите как правильно просканить сеть на наличее компов, или ка сделать так что бы моя функция если в течени 5 миллесекунд не находила компа, чтоб сама отрубалась.
Зарание большое СПАСИБО.