PDA

Показать полную графическую версию : [решено] Поиск DNS имени по IP адрессу


MPru
10-04-2007, 13:58
Вопрос такой: Как найти DNS имена по IP адрессам?


В С++Builder`e 6 -ом есть компенент(TIdDNSResolver) который это и делает талоко я немогу с ним разобратся.


-------------------

Заранее спасибо

hasherfrog
16-04-2007, 09:59
Гугль (http://www.google.ru/search?hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=T0J&q=gethostbyname+c%2B%2B&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=)

MPru
16-04-2007, 12:12
hasherfrog
Мне видимо не getHostByName нужен, а чтото вроде getHostName.
Вот только он не дает искать имена удаленных компютеров.


char hostname[255];
int lhnr_res = gethostname(hostname, 255); //Определение имени хоста
if(lhnr_res)
{//Определение всех адресов которые привязани к этому хосту
hostent *lh=gethostbyname(hostname); //ІР хоста
}

hasherfrog
16-04-2007, 15:11
Угу. В гугле всё есть.

#include <iostream>
#include <winsock.h>

int main()
{
using namespace std;
WSAData wData;

if (WSAStartup(MAKEWORD(2,2), &wData) == SOCKET_ERROR)
{
cout << "Winsock init error\n";
return 1;
}

hostent *h = NULL;
char ip[16];

cout << "Enter Ip: ";
cin >> ip;

unsigned int addr;
addr = inet_addr(ip);

h = gethostbyaddr(reinterpret_cast<char *>(&addr), 4, AF_INET);
if (h == NULL)
{
cout << "Could not resolve address" << endl;
return 1;
}
cout << "Host: " << h->h_name << endl;

return 0;
}

>> Вот только он не дает искать имена удаленных компютеров.

"Насколько" удалённых? :] Вы собираетесь искать в ЛВС, интернете или как?
В интернете, например, на один IP будет много имён, причём вы не все получите запросом (просто для информации).

MPru
17-04-2007, 10:48
hasherfrog
Спасиба работает.
"Насколько" удалённых? :] Вы собираетесь искать в ЛВС, интернете или как?
Мне нужно только в пределах ЛВС.




© OSzone.net 2001-2012