![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
NetBios [D7, Win2k]
Katya_mgkit © (2004-03-25 11:04:00)Здравствуйте мастера….есть машина которая работает по NetBios протоколу…я не хочу разбираться как работает этот протокол мне просто надо узнать как я могу определить в включена ли сейчас машина или нет (Аналог ping) очень прошу срочно надо….
Polevi (2004-03-26 10:07:00) [21]http://www.itbook.ru/upload/book_pdf/894.pdf
Alex Konshin (2004-03-26 06:10:00) [22]Чего-то быстро вы все забыли.
А с чего это вы решили, что это Netbios over TCP/IP?
А если это не так, то и TCP/IP вполне может и не быть. Учитывая то, что на той машине DOS, предполагать там наличие TCP/IP стека я бы не стал. То есть, ping там не подойдет.
Наводящий вопрос к автору: можно ли пингануть эту машину из командной строки командой ping? Если да, то тогда вам помогут приведенные выше примеры, если нет - ищите на Torry пакеты для работы с Netbios.
Теоретически и в этом случае можно сделать через Winsock2, но только это не так просто, потому как практически недокументировано.
rezya (2004-03-26 01:24:00) [23]Вот тебе пару строчек:
begin
if (WSAStartup($202,Data) <> 0)then Showmessage('ошибка');
Sock:=Socket(AF_INET, SOCK_STREAM, 0);
if (Sock=INVALID_SOCKET) then Synchronize(INVALID_SOCKET1);
Addr.sin_family:=AF_INET;
Addr.sin_addr.S_addr:=inet_Addr(PChar(IpAdress));
k:=StartPort;
repeat
begin
Addr.sin_port:=htons(k);
Synchronize(Count);
if Connect(Sock,Addr,Sizeof(Addr))<>0 then
begin
//Synchronize(Error);
end
else
begin
Synchronize(Good);
Shutdown(Sock,0);
WSACleanup;
if (WSAStartup($202,Data) <> 0)then Synchronize(WSAStartup1);
Sock:=Socket(AF_INET, SOCK_STREAM, 0);
if (Sock=INVALID_SOCKET) then ShowMessage('Ошибка создания сокета');
Addr.sin_family:=AF_INET;
Addr.sin_port:=htons(k);//Номер порта
Addr.sin_addr.S_addr:=inet_Addr(PChar(IpAdress));//IP-адрес в десятичной форме с точкой т.е. 127.0.0.1
If connect(Sock, Addr, SizeOf(Addr)) = SOCKET_ERROR) then showmessage('Машины в сети нет') else showmessage('Машина в сети');
это если делать на win Api функциях. А можно и просто на компоненте Client socket. Если будут вопросы спрашивай.
BiN (2004-03-25 16:31:00) [24]если есть NetBios -значит есть и расшаренные ресурсы. Проверяй доступ к ним.
Katya_mgkit (2004-03-25 16:30:00) [25]неужели трудно просто написать пару строчек или дать ссылочку на примерчик только простой у меня нет времени разбираться ...
Katya_mgkit (2004-03-25 16:22:00) [26]
> Digitman © (25.03.04 13:56) [3]
>
> > на этом компе ОС - Dos
>
>
> а какая разница, что за ОС там ?
>
> протокол - он и в Африке протокол !
>
> на то он и протокол, чтобы взаимодействующие процессы не
> "задумывались" о том, где и как реализован этот протокол,
> ибо протокол - это набор установленных разработчиком стандартных
> соглашений по взаимодействию сторон
мило с твоей стороны за лекцию только мне от этого не легче...
Digitman (2004-03-25 13:56:00) [27]
> на этом компе ОС - Dos
а какая разница, что за ОС там ?
протокол - он и в Африке протокол !
на то он и протокол, чтобы взаимодействующие процессы не "задумывались" о том, где и как реализован этот протокол, ибо протокол - это набор установленных разработчиком стандартных соглашений по взаимодействию сторон
Katya_mgkit (2004-03-25 11:38:00) [28]на этом компе ОС - Dos
Rouse_ (2004-03-25 11:14:00) [29]Сделать тотже самый пинг через idICMPClient
Проверить отрыт ли 139 порт по данному адресу
Хотя в некоторых случаях ни тот ни другой способ могут не дать положительного результата