gpt4 book ai didi

c++ - 使用 C++ 将域名从 DNS 格式转换为 NetBIOS 格式

转载 作者:可可西里 更新时间:2023-11-01 10:07:14 25 4
gpt4 key购买 nike

我不确定我在这里使用的术语是否正确。我正在为 Windows 使用 C++ 进行编码。比如说,如果我有一个域名为“mysite.local”,是否有一个 API 可以将其转换为 NetBIOS 域名,例如:“MYSITE”?

最佳答案

你想要 DsGetDcName功能。除了返回指定域的域 Controller 名称外,这还会返回域的名称。

您需要同时传递 DS_IS_DNS_NAME 标志(指定输入域名是 DNS 名称)和 DS_RETURN_FLAT_NAME 标志(指定输出域名应该是一个平面名称):

DOMAIN_CONTROLLER_INFO* pDCI; 

if (DsGetDcName(
NULL, // [optional]ComputerName
strDNSDomainName, // [optional]DomainName (can either be dns or netbios name)
NULL, // [optional]DomainGUID
NULL, // [optional]SiteName (optional)
DS_IS_DNS_NAME | DS_RETURN_FLAT_NAME, // Flags
&pDCI // [out]DomainControllerInfo
) == ERROR_SUCCESS)
{
strNetBiosDomainName = pDCI->DomainName;
NetApiBufferFree(pDCI);
}

它返回一个 DOMAIN_CONTROLLER_INFO您必须使用 NetApiBufferFree 释放的结构.

DOMAIN_CONTROLLER_INFO {
LPSTR DomainControllerName;
LPSTR DomainControllerAddress;
ULONG DomainControllerAddressType;
GUID DomainGuid;
LPSTR DomainName;
LPSTR DnsForestName;
ULONG Flags;
LPSTR DcSiteName;
LPSTR ClientSiteName;
}

关于c++ - 使用 C++ 将域名从 DNS 格式转换为 NetBIOS 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com