На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Узнать IP по сетевому имени , Узнать IP по сетевому имени
      Доброго времени суток. Как можно узнать IP следующих адресов:
      P:\vbroker\dir1 - где P имя сетевого хранилища (которое настраивается с помощью утилиты Net use (командная строка))
      и
      \\user-pc\c - где user-pc имя чужого компьютера в локальной сети
      Иными словами, по P и user-pc необходимо узнать IP удалённых компов.
        Abraziv
        nslookup user-pc
          Не работает. Пробовал.
            А отпинговать комп по его имени?
            Пинг выдаст и IP
              Думаю, следует копнуть в сторону GetAddrInfoEx с NS_NETBT
                Всё сделал средствами QT. Всем спасибо за ответы. Только есть недопонимание. После того, как по имени компа (user-pc) получил IPшники, не понимаю какой использовать, чтобы ломиться на удалённую машину.
                  А пинг чем плох? Он же однозначно связывает имя компа и его IP
                    Цитата Oleg2004 @
                    А пинг чем плох?

                    Плох тем, что он работает на другом уровне сетевой модели - на TCP/IP.
                    А нужно - на NetBIOS over TCP/IP, как вариант.

                    Проверить несложно. Записываем в С:/WINDOWS/System32/Drivers/etc/hosts строчку:

                    192.168.1.5 clientbank

                    А в С:/WINDOWS/System32/Drivers/etc/lmhosts строчку:

                    192.168.1.25 clientbank

                    Ну а потом сделаем "ping clientbank", получим 192.168.1.5
                      Это так
                      Если кто то пишет в lmhosts кривой IP
                      Но если реально в сети только виндовские машины, тогда конечно.
                      И надо поднимать сервер WINS
                        Нет, я о другом. В виндовой реализации команда ping сперва пройдет по уровню TCP (hosts, DNS), и только потом по NBT. Тут я точно не знаю, но предполагаю последовательность: lmhosts, локальная таблица имен, запрос к WINS, UDP бродкаст.

                        По поводу бродкаста:
                        Скрытый текст
                        Цитата
                        При запуске каждый компьютер в сети с запущенной службой сервера оповещает о своем присутствии в сети главный обозреватель и периодически посылает уведомления главному обозревателю о своем существовании. Если компьютер не присылает уведомление больше, чем 36 минут - он удаляется из списка просмотра главного обозревателя. После этого проходит еще некоторое время, прежде чем резервные обозреватели получат информацию об изменениях от главного обозревателя. Поэтому не стоит удивляться тому, что компьютер уже выключен, а в "Сетевом окружении" он все еще есть ("Это не баг - это фича" ;) ).
                        Когда какой-либо компьютер побеждает на выборах и становится главным обозревателем, он рассылает широковещательную дейтаграмму с запросом доступных серверов. Каждый компьютер, с запущенной службой сервера объявляет о себе в течение 30 секунд. Переформировать список просмотра главного обозревателя можно, только перезапустив соответствующую службу (или воспользовавшись утилитой browstat.exe).


                        Следовательно - утилита ping крайне неоптимальна. Надо искать в Win API средства непосредственно завязанные на службу "обозревателя сети" или "на WINS, если таковое есть в настройках интересующего интерфейса".
                          Согласен. Пинг вообще никсовая утилита и про WINS ваще не в курсе.
                          Поэтому даже в виндовских сетях надо уходить от Wins.
                          Другое дело если это нежелательно.
                            Камарады, давайте порешаем вопрос вместе! :)

                            Я понимаю, что весь алгоритм поиска заданного может наизусть не знать никто из присутствующих.
                            И, тем не менее, давайте попробуем сообща собрать мозаику...

                            Прежде чем решать, я от себя озвучу "обозримые постулаты":

                            1) Комп может иметь более одного сетевого интерфейса, посему нужно знать/опросить все
                            2) Транспортный/сетевой протокол может и не быть TCP/IP, а вполне может быть SPX/IPX(транспортный и сеансовый+сетевой), или монстр SMB - следовательно, не всегда возможно получить IP
                            3) Имеет место быть \\ip-не-своей-подсети\шара? или не имеет место быть?

                            Давайте хотя бы число алгоритмически обозначим "как правильно искать".
                            Любая инфа - приветствуется!

                            Скрытый текст
                            ЗЫ:
                            Цитата Abraziv @
                            Доброго времени суток. Как можно узнать IP следующих адресов:
                            P:\vbroker\dir1 - где P имя сетевого хранилища (которое настраивается с помощью утилиты Net use (командная строка))

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

                            ЗЫ:
                            Цитата Abraziv @
                            \\user-pc\c - где user-pc имя чужого компьютера в локальной сети
                            Иными словами, по P и user-pc необходимо узнать IP удалённых компов.

                            user-pc - NETBIOS имя
                              Цитата JoeUser @
                              не всегда возможно получить IP

                              Ключевое слово тут - IP, т.е. Интернет-протокол.
                              Он завязан ТОЛЬКО на стек TCP/IP.
                              Да, в никсовых сетях IP ваще нет - там имя компа это до 126 по моему симворов - т.е. сетевой путь к машине.
                              В IPX/SPX - нет IP, там есть имя узла - node
                              Во всех этих трех случаях - совершенно разные адресные структуры.
                              Резуме - нельзя объять необъятное.
                                Цитата Oleg2004 @
                                Да, в никсовых сетях IP ваще нет

                                :wacko: может ты имел ввиду IPX?

                                Для *никсов для IPX есть поддержка. Для Novell UnixWare и Solaris - "родные", для многих других (Линупс, Фря ...) - сторонние.

                                Цитата Oleg2004 @
                                В IPX/SPX - нет IP, там есть имя узла - node

                                Ну так да, это я и имел ввиду. Вааще нет))
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0659 ]   [ 16 queries used ]   [ Generated: 29.03.24, 08:37 GMT ]