Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

NetBios   Найти похожие ветки 

 
Katya_mgkit   (2004-03-25 11:04) [0]

Здравствуйте мастера….есть машина которая работает по NetBios протоколу…я не хочу разбираться как работает этот протокол мне просто надо узнать как я могу определить в включена ли сейчас машина или нет (Аналог ping) очень прошу срочно надо….


 
Rouse_ ©   (2004-03-25 11:14) [1]

Сделать тотже самый пинг через idICMPClient
Проверить отрыт ли 139 порт по данному адресу
Хотя в некоторых случаях ни тот ни другой способ могут не дать положительного результата


 
Katya_mgkit   (2004-03-25 11:38) [2]

на этом компе ОС - Dos


 
Digitman ©   (2004-03-25 13:56) [3]


> на этом компе ОС - Dos


а какая разница, что за ОС там ?

протокол - он и в Африке протокол !

на то он и протокол, чтобы взаимодействующие процессы не "задумывались" о том, где и как реализован этот протокол, ибо протокол - это набор установленных разработчиком стандартных соглашений по взаимодействию сторон


 
Katya_mgkit   (2004-03-25 16:22) [4]


> Digitman ©   (25.03.04 13:56) [3]
>
> > на этом компе ОС - Dos
>
>
> а какая разница, что за ОС там ?
>
> протокол - он и в Африке протокол !
>
> на то он и протокол, чтобы взаимодействующие процессы не
> "задумывались" о том, где и как реализован этот протокол,
> ибо протокол - это набор установленных разработчиком стандартных
> соглашений по взаимодействию сторон


мило с твоей стороны за лекцию только мне от этого не легче...


 
Katya_mgkit   (2004-03-25 16:30) [5]

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


 
BiN ©   (2004-03-25 16:31) [6]

если есть NetBios -значит есть и расшаренные ресурсы. Проверяй доступ к ним.


 
rezya ©   (2004-03-26 01:24) [7]

Вот тебе пару строчек:

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. Если будут вопросы спрашивай.


 
Alex Konshin ©   (2004-03-26 06:10) [8]

Чего-то быстро вы все забыли.
А с чего это вы решили, что это Netbios over TCP/IP?
А если это не так, то и TCP/IP вполне может и не быть. Учитывая то, что на той машине DOS, предполагать там наличие TCP/IP стека я бы не стал. То есть, ping там не подойдет.

Наводящий вопрос к автору: можно ли пингануть эту машину из командной строки командой ping? Если да, то тогда вам помогут приведенные выше примеры, если нет - ищите на Torry пакеты для работы с Netbios.
Теоретически и в этом случае можно сделать через Winsock2, но только это не так просто, потому как практически недокументировано.


 
Polevi ©   (2004-03-26 10:07) [9]

http://www.itbook.ru/upload/book_pdf/894.pdf


 
Anatoly Podgoretsky ©   (2004-03-26 10:18) [10]

В Дельфи приложен nb30.pas для работы с Netbios, но вот найти описание самого Netbios не так просто.


 
Polevi ©   (2004-03-26 10:35) [11]

>Anatoly Podgoretsky ©   (26.03.04 10:18) [10]
у себя не нашел, есть на filesearch.ru + [9] даст ответ на вопрос, там одна ф-ия всего и одна структура, для простого пинга код на 10 строк


 
Katya_mgkit   (2004-03-26 11:11) [12]


> Чего-то быстро вы все забыли.
> А с чего это вы решили, что это Netbios over TCP/IP?
> А если это не так, то и TCP/IP вполне может и не быть. Учитывая
> то, что на той машине DOS, предполагать там наличие TCP/IP
> стека я бы не стал. То есть, ping там не подойдет.
>
> Наводящий вопрос к автору: можно ли пингануть эту машину
> из командной строки командой ping? Если да, то тогда вам
> помогут приведенные выше примеры, если нет - ищите на Torry
> пакеты для работы с Netbios.

да ты прав пинг не проходит...
> Теоретически и в этом случае можно сделать через Winsock2,
> но только это не так просто, потому как практически недокументировано.


 
rezya ©   (2004-03-26 12:39) [13]

Не не не...
О чем вы тут разговариваете селать ping из командной строки..
Он же будет делать пинг не на порт netbios а на порт пинга.
А вы учли что машина под DOS-ом работает. В ней может и не стоять обработка ICMP сообщений (PING-а) или порты пинга закрыты. А NetBios работает насколько я помню в стеке tcp\ip если сомневаетесь то go  читать RFC. А в данном случае надо просто (если заведомо знаешь что какойто сервис открыт) то так сказать просканировать какой либо порт в данном случае NETBios.


 
Polevi ©   (2004-03-26 12:52) [14]

>rezya ©   (26.03.04 12:39) [13]
не, мне интересно, что значит "просканировать NetBios порт"
по какому протоколу сканировать ты собрался, если по TCP то [8] иначе [9]


 
Anatoly Podgoretsky ©   (2004-03-26 19:16) [15]

rezya ©   (26.03.04 12:39) [13]

У ICMP нет портов, как ты будешь пинговать порт, которого в природе не существует.

ДОС и TCP/IP не являются антогонистами, спокойно могут сосуществовать, так что это мы тоже учли. Но вероятнее TCP стека там нет, ICMP наверно тоже, а есть Netbios и имя машины по нему, вот мащину и можно найти, для этого и нужен nb30.pas


 
rezya ©   (2004-03-26 19:46) [16]


> не, мне интересно, что значит "просканировать NetBios порт"
> по какому протоколу сканировать ты собрался, если по TCP
> то [8] иначе [9]

Так я же и заметил что если на том компе поддерживается TCP\IP.
И что то я не пойму, а каким транспортом вы думаете пользуется NETBios?
И что значит по какому протоколу?
Я хотел бы привести цитату из одной книги(RFC):
<NetBIOS использует в качестве транспортных протоколов TCP и UDP.>
Т.Е. При использовании этого протокола полюбому используются транспорты IP модуля => заключаем что машина из под Dos-a полюбому поддерживает протокол TCP\IP. Другой вопрос о пинге. В DOS может и не поддерживать его, хотя врятли.


 
Polevi ©   (2004-03-26 19:51) [17]

<NetBIOS использует в качестве транспортных протоколов TCP и UDP.>
или IPX\SPX, NetBEUI


 
Alex Konshin ©   (2004-03-26 20:27) [18]

<NetBIOS использует в качестве транспортных протоколов TCP и UDP.>
Т.Е. При использовании этого протокола полюбому используются транспорты IP модуля => заключаем что машина из под Dos-a полюбому поддерживает протокол TCP\IP. Другой вопрос о пинге. В DOS может и не поддерживать его, хотя врятли.

Новое поколение никаких протоколов кроме TCP/IP не знает.
RFC описывают TCP/IP, тут они тебе не помогут.
TCP/IP это не протокол, а протоколы, среди которых ICMP, так что если есть TCP/IP, то пинг будет (не будем рассматривать случаи, когда его специально запрещают). В ICMP нет понятия портов.
Вернемся к Netbeui. Именно с ним, скорее всего, мы имеем дело, т.к. старые версии Windows и MS Client предлагали его по умолчанию.


 
rezya ©   (2004-03-26 20:36) [19]

По поводу Netbeui или Стек Протоколов TCP\IP :-))))
тут уже надо уточнить где происходит дело в локалке или INTERNETE. Но помоему и так ясно что в локалке (ато Dos и в Inete :-))) поэтому да, скорее  всего Netbeui тогда ищем компоненту там где и было предложено ранее.
Теперь по поводу пинга "А как она\он его делала" может просто банальная ошибка?
И теперь по поводу портов в ICMP - это я просто сказал и не подумал, так сказать увлекся.


 
Anatoly Podgoretsky ©   (2004-03-27 14:24) [20]

NetBIOS это протокол более высокого уровня, он находится над транспортными протоколами и независим от них. Традиционно он работает над IPX/SPX но это не обязательное условие.


 
Piter ©   (2004-03-27 14:59) [21]

Anatoly Podgoretsky (27.03.04 14:24) [20]
Традиционно он работает над IPX/SPX но это не обязательное условие


даже не знаю. Сейчас NB используется обычно только службой Файлов и принтеров от MS. А в локалках сейчас обычно TCP/IP пользуют... так что IPX/SPX отживает свое... наверное


 
Anatoly Podgoretsky ©   (2004-03-27 15:14) [22]

Сейчас да, но они используют не совсем Netbios, a Netbeui, хотя по сути это одно и тоже. Жа и протокол используют сосвсем не этот, а инкапсулируют в TCP
У Катерины же явно чистый дос и наверно LanMan


 
Piter ©   (2004-03-27 16:49) [23]

Я вот что думаю, уважаемые мастера...

NetBios там зачем используется? Чтобы ресурсы расшаренные использовать, верно? Ну так почему бы не воспользоваться функцией WNetOpenEnum, если вернет NO_ERROR - значит комп жив, если ошибка - значит не жив. Или по крайней мере достучаться до него по NB невозможно...
Что думаете?


 
Alt-Ctrl-Del   (2004-03-27 19:32) [24]

Короче говоря всетаки добились своего чтобы небыло ни каких дискусий как уже сказал Rezya надо узнать что у неё работает т.е.локалка или I-Net, это раз. А два все дружно читаем (9).


 
Katya_mgkit   (2004-03-29 10:40) [25]

хм...почетала все что вы написали-ничего не поняла...;)

Итак...Во первых эти машины находятся в LAN Во вторых я может мало что понимаю но tcp\ip и icmp вообще там и не пахнет…

> Piter ©   (27.03.04 16:49) [23]
> Я вот что думаю, уважаемые мастера...
>
> NetBios там зачем используется? Чтобы ресурсы расшаренные
> использовать, верно? Ну так почему бы не воспользоваться
> функцией WNetOpenEnum, если вернет NO_ERROR - значит комп
> жив, если ошибка - значит не жив. Или по крайней мере достучаться
> до него по NB невозможно...
> Что думаете?

да действительно Netbios там используется только для того что бы использовать расшаренные ресурсы...(на каждой из этих машин расшарен диск с ) так вот действетельно можно проверять таким способом...вот только я не очень понела как это сделать если можно поподробнее ....

З.Ы. Всем кто помогает передаю поцелуйчик....;)


 
Piter ©   (2004-03-29 19:16) [26]

А что поподробнее? Прочитай Win32 SDK, прочитай статью на этом сайте http://www.delphimaster.ru/articles/netmon/index.html , там все достаточно подробно


 
Piter ©   (2004-03-29 19:19) [27]

.Ы. Всем кто помогает передаю поцелуйчик....;)

А вот после этого желание помогать и пропадает... как будто покупают


 
Rezya ©   (2004-03-29 20:05) [28]

Всем кто помогает передаю поцелуйчик....;)
Хмм.. А мне это понравилось ;-))))


 
Alex Konshin ©   (2004-03-30 04:31) [29]

Хорошо, что жена это не читает - еле помаду вытереть успел.
:)



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

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.043 c
1-1082976833
Alexander
2004-04-26 14:53
2004.05.16
Создание субменю


7-1081155835
Azazzello
2004-04-05 13:03
2004.05.16
Как узнать сводобное место на диске.


7-1081420177
onyx
2004-04-08 14:29
2004.05.16
Работа с именем файла


3-1082543669
avgur
2004-04-21 14:34
2004.05.16
Вопрос о истории значеий


1-1083061737
IceMaster
2004-04-27 14:28
2004.05.16
Memo