• 0
osvirt

TIdTCPClient.Host Как использовать имя компьютера в сети без домена

Вопрос

Каким образом можно обратиться к компьютеру не по IP? Разнообразные хэлпы говорят: "The address can be a computer name such as "wvnvm.wvnet.edu" or an IP Address such as "129.71.2.4"."

 

Я так понимаю, что тут нужен либо непосредственно айпи, либо dns-сервер, чтобы разрешить имя в айпи. Для Win приложения для разрешения имени можно использовать WinSock.

Чего делать на андроиде?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 ответов на этот вопрос

  • 0

Это настолько сложный или настолько глупый вопрос, что все молчат? о_О

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Название топика содержит ответ на ваш вопрос - TIdTCPClient, ключевое слово "TCP". Этот протокол адресует устройства (или интерфейсы) исключительно по IP адресу(IPv4 или IPv6). 

Компонент TIdTCPClient работает следующим образом - если TIdTCPClient.Host содержит IP адрес, все нормально, отправляем туда пакет, но если в TIdTCPClient.Host строка, то ресолвим ее в IP адрес и после этого отправляем пакет на полученный адрес.

Разрешение (ресолвинг) DNS имен происходит по примерно такой цепочке : 

  1. Если это localhost, то система без вопросов возвращает 127.0.0.1
  2. Операционка смотрит свои локальные настройки (windows C:\Windows\System32\drivers\etc\hosts, unix /etc/hosts)
  3. Проверяется локальный кэш dns записей
  4. Делается запрос на DNS сервер

Так же могут применяться экзотические или устаревшие методы, к примеру Windows NetBIOS Name Server (WINS server).

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

Andrey Efimov, Равиль Зарипов (ZuBy) и krapotkin понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
В 22.05.2017 в 16:37, Евгений Корепов сказал:

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

Скорее всего вопрос не в ту тему, но в какую именно его задать - не знаю.

Если скорректировать вопрос для этой темы, тогда он будет такой: "Как в TIdTCPClient.Host использовать имя компьютера в сети без домена?"

Если не для этой темы, тогда так:"Как узнать IP удалённого компьютера в локальной сети, зная его имя, на устройстве с android?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, osvirt сказал:

Скорее всего вопрос не в ту тему, но в какую именно его задать - не знаю.

Если скорректировать вопрос для этой темы, тогда он будет такой: "Как в TIdTCPClient.Host использовать имя компьютера в сети без домена?"

Если не для этой темы, тогда так:"Как узнать IP удалённого компьютера в локальной сети, зная его имя, на устройстве с android?"

У девочки компьютера нет имени (в контексте сети), у него есть MAC адрес и IP адрес. Если под именами компьютеров вы имеете ввиду то что видите открывая папку Сеть на компьютере, то это как раз работа NETBIOS. Каждый компьютер под управлением Windows срёт в сеть широковещательными пакетами с криками "Это я, это я, я еще живой!". При адекватном администраторе это все отключено и заглушено, потому как в этой среде распространение вирусов максимально благоприятно.

Но если вы хотите воспользоваться этим механизмом, то начните гуглить NETBIOS, или попробуйте послушать снифером порт 137 (TCP если не ошибаюсь). В теории слушая этот порт и разбирая полученные пакеты у вас будет список из связок "Имя компьютера"-"IP адрес". Имейте ввиду, что в сети более чем с двумя компьютерами на этот порт может валиться несколько сотен пакетов в секунду.

И одно большое "Но" - гугль не любит микрософт, поэтому на всех не рутованных устройствах порты NETBIOS заблокированы от слова совсем, конечно же в целях безопасности.

Изменено пользователем Евгений Корепов

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
42 минуты назад, Евгений Корепов сказал:

если вы хотите воспользоваться этим механизмом, то начните гуглить NETBIOS, или попробуйте послушать снифером порт 137 (TCP если не ошибаюсь). В теории слушая этот порт и разбирая полученные пакеты у вас будет список из связок "Имя компьютера"-"IP адрес". Имейте ввиду, что в сети более чем с двумя компьютерами на этот порт может валиться несколько сотен пакетов в секунду.

И одно большое "Но" - гугль не любит микрософт, поэтому на всех не рутованных устройствах порты NETBIOS заблокированы от слова совсем, конечно же в целях безопасности.

Кажется пора переводить свои приложения на app tethering... к чему все эти танцы с бубном?!

Евгений Корепов понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу