Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > GetHostByAddr: имя рабочей группы есть не всегда.


Автор: malor 19.11.2012, 13:29
Программа NameWG: 
Код
const
  TEST_ADDRESS = '192.168.146.1';

function GetCompName(const Addr: Integer): String;
var
  WSA: TWSAData;
  Host: PHostEnt;
  Err: Integer;
begin
  Result := RES_UNKNOWN;
  Err := WSAStartup(WSA_TYPE, WSA);

  if Err <> 0 then  
  begin             
    //ShowMessage(SysErrorMessage(GetLastError));
    Exit;
  end;

  try
    if Addr = INADDR_NONE then Exit;

    Host := GetHostByAddr(@Addr, SizeOf(Addr), PF_INET);

    if Assigned(Host) then  
      Result := PChar(WideString(AnsiString(Host.h_name))) 
    else
      //ShowMessage(SysErrorMessage(GetLastError));
  finally
    WSACleanup;
  end;

end;


Windows 7 имеет IP-адрес виртуального интерфейса "192.168.146.1". 
Причислена к домену "mydomain.local": 

user posted image

Внутри "VMWare Player" вращается "Windows XP", имеющая IP-адрес "192.168.146.132".
Запуск программы "NameWG" из Windows XP:

user posted image

Запуск программы из исходной Windows 7:

user posted image

Сканирование из программы NetView:

user posted image

Сканирование из программы LANState Pro:

user posted image

Почему программа "NameWG"  не пишет в имени фразу "mydomain.local" у узла "192.168.146.1" ("Windows7") ?
Или, что то же самое, почему сканировщики "LANState Pro" & "NetView" не приписывают у узла xvm имя рабочей группы? Оно всё-таки существует (на скринах не привожу).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)