Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Как узнать в сети Host-name компа
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
asterix asterix вне форума
Member
 
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.09.2003
По умолчанию Как узнать в сети Host-name компа - 24.09.2003, 21:43

Всем привет
Есть проблемма.
Каким образом узнать Host-name компа в сети по известному Ip-адрессу, или наоборот.
Если кто-нибудь такое встречал пожайлуста помогите.
Заранее благодарен.
Ответить с цитированием
  (#2 (permalink)) Старый
asterix asterix вне форума
Member
 
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.09.2003
По умолчанию Как узнать в сети Host-name компа - 24.09.2003, 21:43

Всем привет
Есть проблемма.
Каким образом узнать Host-name компа в сети по известному Ip-адрессу, или наоборот.
Если кто-нибудь такое встречал пожайлуста помогите.
Заранее благодарен.
Ответить с цитированием
  (#3 (permalink)) Старый
Srpj Srpj вне форума
Member
 
Сообщений: 100
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.08.2003
По умолчанию 24.09.2003, 23:18

Пример кода. В HostNameEdit вводится имя или IP-адрес компьютера.

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (HostNameEdit->Text == "")
  {
  MessageDlg("Не указаны имя или IP-адрес компьютера.", mtInformation, TMsgDlgButtons()<<mbOK, 0);
  return;
  }

if (inet_addr(HostNameEdit->Text.c_str()) != INADDR_NONE)
  {
  // введён IP-адрес
  in_addr addr;
  addr.s_addr = inet_addr(HostNameEdit->Text.c_str());
  hostent *ht = gethostbyaddr((const char*)&addr, sizeof(in_addr), AF_INET);
  if(ht == NULL)
    {
    MessageDlg("Не удалось определить имя компьютера.", mtError, TMsgDlgButtons()<<mbOK, 0);
    return;
    }
  String str=ht->h_name;
  MessageDlg("Имя компьютера: "+str, mtInformation,TMsgDlgButtons()<<mbOK,0);
  return;
  }

hostent *ph = gethostbyname(HostNameEdit->Text.c_str());
if (ph == NULL)
  {
  MessageDlg("Не удалось определить IP-адрес.", mtError, TMsgDlgButtons()<<mbOK,0);
  return;
  }

sockaddr_in addr;
memcpy(&addr.sin_addr.s_addr, ph->h_addr, ph->h_length);
String str = inet_ntoa(addr.sin_addr);
MessageDlg("IP-адрес: " + str + ".", mtInformation, TMsgDlgButtons()<<mbOK,0);
}
P.S. Не забудьте про WSAStartup()/WSACleanup()
Ответить с цитированием
  (#4 (permalink)) Старый
Srpj Srpj вне форума
Member
 
Сообщений: 100
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.08.2003
По умолчанию 24.09.2003, 23:18

Пример кода. В HostNameEdit вводится имя или IP-адрес компьютера.

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (HostNameEdit->Text == "")
  {
  MessageDlg("Не указаны имя или IP-адрес компьютера.", mtInformation, TMsgDlgButtons()<<mbOK, 0);
  return;
  }

if (inet_addr(HostNameEdit->Text.c_str()) != INADDR_NONE)
  {
  // введён IP-адрес
  in_addr addr;
  addr.s_addr = inet_addr(HostNameEdit->Text.c_str());
  hostent *ht = gethostbyaddr((const char*)&addr, sizeof(in_addr), AF_INET);
  if(ht == NULL)
    {
    MessageDlg("Не удалось определить имя компьютера.", mtError, TMsgDlgButtons()<<mbOK, 0);
    return;
    }
  String str=ht->h_name;
  MessageDlg("Имя компьютера: "+str, mtInformation,TMsgDlgButtons()<<mbOK,0);
  return;
  }

hostent *ph = gethostbyname(HostNameEdit->Text.c_str());
if (ph == NULL)
  {
  MessageDlg("Не удалось определить IP-адрес.", mtError, TMsgDlgButtons()<<mbOK,0);
  return;
  }

sockaddr_in addr;
memcpy(&addr.sin_addr.s_addr, ph->h_addr, ph->h_length);
String str = inet_ntoa(addr.sin_addr);
MessageDlg("IP-адрес: " + str + ".", mtInformation, TMsgDlgButtons()<<mbOK,0);
}
P.S. Не забудьте про WSAStartup()/WSACleanup()
Ответить с цитированием
  (#5 (permalink)) Старый
Cyber Cyber вне форума
Member
 
Сообщений: 121
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 22.10.2002
По умолчанию 28.09.2003, 22:55

Слухай а какую *.h нада прописать
чтоб in_addr b inet_addr() работали?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Cyber Cyber вне форума
Member
 
Сообщений: 121
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 22.10.2002
По умолчанию 28.09.2003, 22:55

Слухай а какую *.h нада прописать
чтоб in_addr b inet_addr() работали?
Ответить с цитированием
  (#7 (permalink)) Старый
Cyber Cyber вне форума
Member
 
Сообщений: 121
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 22.10.2002
По умолчанию 28.09.2003, 22:58

Ой паходу понял #include "winsock2.h"
я просто другие *.h юзаю
Ответить с цитированием
  (#8 (permalink)) Старый
Cyber Cyber вне форума
Member
 
Сообщений: 121
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 22.10.2002
По умолчанию 28.09.2003, 22:58

Ой паходу понял #include "winsock2.h"
я просто другие *.h юзаю
Ответить с цитированием
  (#9 (permalink)) Старый
Leon Leon вне форума
Member
 
Сообщений: 262
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.10.2002
По умолчанию 09.10.2003, 13:28

Ну я точно щас не помню не сос воей машины пишу. Какой-то из серверных компонентов типа TSocketServer имеет метод HostByName он возвращает имя удаленной машины. Пляши в хэлпе от HostByName() и обязательно все найдешь
Ответить с цитированием
  (#10 (permalink)) Старый
SH@DOW SH@DOW вне форума
Member
 
Сообщений: 2,085
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.09.2002
По умолчанию 09.10.2003, 20:03

gethostbyaddr - возвращает информацию о Хосе по адресу
Об использовании читай в MSDN-е.
Ответить с цитированием
  (#11 (permalink)) Старый
pronad pronad вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.06.2015
По умолчанию 27.06.2015, 19:41

куда код прописывать? Все конечно знают, кроме меня
вообще меня форум заблокировал по IP адресу спамхостинг какой-то и я на форуме из-за этого больше не могу писать IP- заброкирован
может я не туда попал по поисковику искал - как узнать hostname по ip

Последний раз редактировалось pronad; 27.06.2015 в 19:45
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блок питания сам включается при подключении его к сети!Блок питания отключен от компа Vilgelm Blackwood Блоки питания 7 04.09.2011 13:49
не пингуются два компа в сети alexey_student89 Сетевые подключения 4 29.07.2011 12:45
Работа с USB host Trox Windows CE 0 13.04.2009 15:01
вопрос как узнать свой host id -SWORD- Разное 0 14.07.2008 21:52
Можно ли узнать кто из пользователей сети удалил документы? Kupuлл Любые вопросы от новичков 1 04.07.2008 07:38
wmi provider host F3Kseries Ноутбуки 1 19.06.2008 23:39
Можно ли узнать, сливали с компа инфу или нет? Big Mountain Софт и программы 6 18.02.2008 00:08
Как узнать рабочую группу если есть имя хоста в сети Yarl Сетевое программирование 0 15.09.2005 11:12
Как узнать имя PC и IP в сети, используя путm Vlad2 C++ Builder 1 16.02.2005 23:23
Как можно узнать все ІР адресса в локальной сети mefest C++ Builder 13 16.02.2005 15:51
Сколько компьютеров в сети как это узнать Алексеев Николай Delphi 9 13.02.2005 21:21
Можно ли узнать имя компьютера в локальной сети? MJ DHTML, JavaScript, VBScript 6 14.08.2003 12:29



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов