Delphi-如何获取我的完整域名

时间:2016-11-20 07:38:28

标签: delphi delphi-10-seattle

在我的程序中,我正在尝试检索当前计算机的域名。 我找到了一些人们在论坛中写的代码,但它们似乎都是部分工作的。

我的意思是我的域名类似于' mydomain.mydomain11.com' 当我试图检索域名时,我总是只得到“mydomain'而不是&mydomain.mydomain11'

我也尝试过使用“GetEnvironmentVariable”'函数返回相同的东西。

如果可能,我想知道如何检索完整路径。

我的最终目标是使用LDAP协议查询活动目录,因此它将真正有助于了解如何将域路径分块为:

CN=Users,DC=mydomain,DC=mydomain11,DC=com

但获取我的完整域名现在可以做..

2 个答案:

答案 0 :(得分:3)

您可以将GetComputerNameEx功能与from t1 in Table1 join t2 in Table2 on t1.field1 = t2.field2 select new {t1.field1, t1.field2, t2.field3}参数一起使用:

分配给本地计算机的DNS域的名称。如果本地计算机是群集中的节点,则lpBuffer将接收本地计算机的DNS域名,而不是群集虚拟服务器的名称。

如果您的目标是连接到LDAP以搜索目录中的对象,通常的方法是连接到RootDSE。这是一个example

答案 1 :(得分:-1)

ref What's the best method for getting the local computer name in Delphi

ref http://www.delphipages.com/forum/showthread.php?t=29823      在洛安(LorAn)之下,发音为洛恩(Lorne)-获取的绝佳框架

在Delphi变量MAXCHAR中滚动以获取缓冲区大小,应该是可以在最短时间内返回的最大大小

function getDomain: string;
var
  vlDomainName : array[0..MAXCHAR] of char;
  vlSize : ^DWORD;
begin
  New(vlSize);
  vlSize^ := MAXCHAR;
  ExpandEnvironmentStrings(PChar('%USERDOMAIN%'), vlDomainName, vlSize^);
  Dispose(vlSize);
  Result := vlDomainName;
end;

要获取DNSServer.DOMAIN.DOMAIN ..

使用ADSI库ADSystemInfo GetAnyDCName()函数并在小数点[。]上分割