Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Вниз

найти тачку в сети с заданным портом   Найти похожие ветки 

 
nickolayLI   (2002-10-21 07:16) [0]

Привет всем знатокам и мастерам!

Собственно субж как можно реализовать, можно конечно броадкаст послать, но не омгу сообразить как это сделать, есть какие-нить доки/примеры


 
Rouse_   (2002-10-21 07:25) [1]

Пишешь программу аналогичную сканеру портов, только скашишь не порты а адреса (так как порт у тебя известен)

Желаю успехов


 
nickolayLI   (2002-10-21 08:09) [2]

угу, еще у каждого адреса нужно порт опеределить, но как?
это писать что-то вроде ./nmap"a, только в упращенном варианте? :)


 
nickolayLI   (2002-10-21 15:51) [3]

люди ну помогите же,а? :(


 
vidiv   (2002-10-22 07:13) [4]

а 192.168.1.255 не как? или я не в тему?


 
nickolayLI   (2002-10-22 09:15) [5]

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


 
vidiv   (2002-10-23 02:07) [6]

nickolayLI ==>>
Ты через Sockets делаешь?

Потому что если сделать NMUDP то можно отправить широковещательное сообщение и та машина которая тебе нужна на него отчвечает и ты знаешь ее IP и порт...


 
nickolayLI   (2002-11-04 09:00) [7]

да я делаю через tclientsocket and tserversocket


 
valnech   (2002-11-04 14:02) [8]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1035826977&n=4
- переборка всех компов, далее - цикл с подключением ( ClientSocket.Host = items[i]) с обработкой ошибки 10061 - наверное, надо делать так...


 
nickolayLI   (2002-11-04 14:50) [9]

хм... дык тама по именам а мне нужно по айпи :(


 
valnech   (2002-11-04 15:01) [10]

Ты куда IP хочешь подставлять? Туда можно просто ИМЯ тачки :)


 
nickolayLI   (2002-11-04 15:09) [11]

ну да вообще-то это я потом уже об этом подумал :),
но фича в другом короче я делаю в цикле подключение к хосту, так он млин (клиент) подключается к каждой тачке, а не к той которой надо, т.е. серверу :(
причем сразу к первой тачке в списке :(
хотя тама нету открытого порта на который нужно зецепиться :(


 
valnech   (2002-11-04 15:11) [12]

ПОДКЛЮЧАЕТСЯ? Или ПЫТАЕТСЯ подключиться?


 
nickolayLI   (2002-11-04 15:24) [13]

подключается
for i := 0 to Memo1.Lines.Count - 1 do begin
with ClientSocket1 do begin
nFindHost:=Memo1.Lines.Strings[i];
if nFindHost <> "" then begin
Host := nFindHost;
Port := 3333;
if Active = true then break;
end;
end;
end;


 
valnech   (2002-11-04 16:50) [14]

Надо ждать пока ClientSocket1.Active станет true примерно так While not ClientSocket1.Active do Application.ProcessMessages;
(c)Мазут Береговой (01.11.02 06:50)

т.е. где-то здесь:
if nFindHost <> "" then begin
Host := nFindHost;
Port := 3333;
if Active = true then break;<------
end;


 
NickolayLi   (2002-11-04 20:08) [15]

делал я такое, и что?!
тут приводили пример
while not Active do Application.ProcessMessages
но ты сам попробуй, найти машинку с заданным портом, но не с заданным сервером...
туфта...
у меня просто, есть мысль, писать на чистом АПИ... :(((
потому, что ИМХО нет чистой обратобки ClientScoket and ServerSocket на ниазком уровне :(

... PS. А хотелось бы ... а может и не прав я ...


 
s002156Shurik   (2002-11-05 01:42) [16]

подключается
for i := 0 to Memo1.Lines.Count - 1 do begin
with ClientSocket1 do begin
nFindHost:=Memo1.Lines.Strings[i];
if nFindHost <> "" then begin
try
Active := false;
Host := nFindHost;
Port := 3333;
Active := true;
break;
except
end;
end;
end;
end;

если при активизации сокета ошибка невылетела то произошол конект с удаленной машиной по данному порту, и соответственно выход из цикла. Иначе обрабатывается исключение и цикл продолжается!.


 
nickolayLI   (2002-11-05 07:04) [17]

хм...
он в цикл заходит, и зацикливается на первой тачке из списка :(


 
/*Drive*/   (2002-11-05 08:03) [18]

for ptnum=1 to 255 do
begin
wsastartup($101,wsa2);
s2:=socket(af_inet,SOCK_stream,IPPROTO_tcp);
sadr2.sin_family:=AF_inet;
sadr2.sin_port:=htons(ptnum);
sadr2.sin_addr.S_addr:=inet_addr(pchar(bs+inttostr(check)));
if connect(s2,sadr2,sizeof(sadr2))=0 then
begin
end;
end;


 
nickolayLI   (2002-11-05 12:07) [19]

хм...
еще бы знать что это за зверь такой sadr2? какого типа?


 
nickolayLI   (2002-11-05 12:08) [20]

хм.. с этим типом понятно всё
а вот bs?


 
nickolayLI   (2002-11-05 12:13) [21]

ладно и с этим тоже разобрался...
но не идет


 
nickolayLI   (2002-11-05 13:38) [22]

вот ведь... не идет и всё тут :(


 
nickolayLI   (2002-11-05 13:56) [23]

Вылетает сообщение об ошибке что "этот хост не найден" и всё млин, а какой хост не понятно...
первый из списка наверно.


 
s002156Shurik   (2002-11-06 00:53) [24]

Оно не зацикливается а пытается сделать коннект
for i := 0 to Memo1.Lines.Count - 1 do begin
with ClientSocket1 do begin
nFindHost:=Memo1.Lines.Strings[i];
if nFindHost <> "" then begin
try
Active := false;
Host := nFindHost;
Address := nFindHost;
Port := 3333;
Active := true;
break;
except
end;
end;
end;
end;

и в списке хостов прописывай ip компов повозможности.


 
/*Drive*/   (2002-11-06 06:19) [25]

sadr2.sin_addr.S_addr:=inet_addr(pchar(ИМЯ ХОСТА));

Это просто кусок моего кода!!!
Сейчас пишу !!!! И всё работает !!!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.62 MB
Время: 0.034 c
4-1939
turonix
2002-11-15 22:40
2003.01.02
Какой API функцией можно изменить курсор мыши?


1-1780
nikolo
2002-12-20 11:39
2003.01.02
Как скролить Panel?


7-1923
Геннадий
2002-10-25 20:26
2003.01.02
Подскажите, как создать окно БЕЗ значка в Панели задач?


1-1807
laser
2002-12-20 17:03
2003.01.02
Пацаны ПОМОГИТЕ


1-1806
smok_er
2002-12-20 14:24
2003.01.02
Открытие файла только для чтения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский