Перейти к содержанию
Fire Monkey от А до Я
  • 0

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


osvirt

Вопрос

Каким образом можно обратиться к компьютеру не по 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.

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

Ссылка на комментарий

Рекомендуемые сообщения

  • 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).

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

Ссылка на комментарий
  • 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... к чему все эти танцы с бубном?!

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...