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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.055 c
4-1080557192
Nic
2004-03-29 14:46
2004.05.16
Два вопросика


1-1082706710
13-Drakosha
2004-04-23 11:51
2004.05.16
Трабл с RxRichEd


9-1072863598
ZAROLF
2003-12-31 12:39
2004.05.16
Проиграть .ogg звук с помощью BASS.DLL 2.0


8-1077375996
Cerber
2004-02-21 18:06
2004.05.16
Прозрачность.


1-1083231666
Goida
2004-04-29 13:41
2004.05.16
Запуск программой себя же...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский