![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать IP-адрес компа в локалке по его сетевому имени? [D7, WinXP]
Zion © (2005-03-22 00:03:00)subject
Zion (2005-03-25 14:29:00) [1]Спасибо! :)
Ozone (2005-03-25 05:24:00) [2]uses WinSock
Zion (2005-03-24 21:52:00) [3]а главное что GetHostByName тоже undeclarated identifier! что делать? пробовал и на D5 и на D7 - не работает(((
Zion (2005-03-24 21:31:00) [4]а где находятся TWSAData и PHostEnt? пишет undeclarated identifier...
Alex Konshin (2005-03-23 07:38:00) [5]Вопрос был поставлен ясно и понятно ответ на него дал Ozone, а я пример привел использования.... зачем разглагольствовать?
Ваши ответы неверны, если понимать вопрос буквально.
"Сетевое имя компьютера" в Windows это отнюдь не DNS имя. Хотя бы потому, что оно имеет смысл даже тогда, когда TCP/IP не установлен. Более того, они могут и не совпадать.
TankMan (2005-03-23 06:49:00) [6]>>Alex Konshin
Это вы к чем вообще сказали?
Вопрос был поставлен ясно и понятно ответ на него дал Ozone, а я пример привел использования.... зачем разглагольствовать?
Alex Konshin (2005-03-23 00:07:00) [7]О каком сетевом имени идет речь? Если о netbios-имени ("имени компьютера"), то по-моему оно напрямую не зависит от DNS-имени (хотя обычно совпадают).
Я лично не знаю ответа на такой вопрос. Но это точно не то, что здесь написали ранее.
Хотя нет, какой-то ответ я знаю. Если в локальной сети домен контроллер - ActiveDirectory сервер, то оттуда можно вытащить такую информацию.
ZioN (2005-03-22 22:22:00) [8]спасибо большое!!! Щас проверю, как работает...
TankMan (2005-03-22 07:35:00) [9]function GetIPFromName(DNS: string): string;
const
ERR_HOST = 'Can not get host information.';
RES_UNKNOWN = 'Unknown';
ERR_WSA = 'Can not initialize WSA.';
WSA_TYPE = $101; //$202;
var
WSA : TWSAData;
Host : PHostEnt;
Err : Integer;
begin
Result := RES_UNKNOWN;
Err := WSAStartup(WSA_TYPE, WSA);
if Err <> 0 then
begin
MessageDlg(ERR_WSA, mtError, [mbOK], 0);
Exit;
end;
Host := GetHostByName(PChar(DNS));
if Assigned(Host.h_addr_list) then
Result :=
inet_ntoa(PInAddr(Host.h_addr_list^)^)
else
MessageDlg(ERR_HOST, mtError, [mbOK], 0);
WSACleanup;
end;
Ozone (2005-03-22 05:20:00) [10]GetHostByName