Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

NetBios [D7, Win2k]


Страницы:   1 2

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 порт по данному адресу
Хотя в некоторых случаях ни тот ни другой способ могут не дать положительного результата


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо