C++ 如何确定我的程序是否为';在公司领域';

C++ 如何确定我的程序是否为';在公司领域';,c++,windows,networking,active-directory,C++,Windows,Networking,Active Directory,我正在尝试确定我的服务当前是否连接到公司域 我试过了 BOOL bResult = LogonUser(m_userName, m_domainStr, m_password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &userHandle); 但如果凭证良好,则返回true 我猜Windows正在检查缓存的凭据并确定它们是否良好 我想我可以使用Ping,但防火墙也可以阻止它 是否有一种好的、干净的方法来确定计算机是否在“公司网

我正在尝试确定我的服务当前是否连接到公司域

我试过了

BOOL bResult = LogonUser(m_userName, m_domainStr, m_password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &userHandle);
但如果凭证良好,则返回true

我猜Windows正在检查缓存的凭据并确定它们是否良好

我想我可以使用Ping,但防火墙也可以阻止它


是否有一种好的、干净的方法来确定计算机是否在“公司网络”上(例如,可以连接到AD)。

检查DCs SYSVOL共享的可用性

我会向DNS查询DC列表,然后在DC中循环,直到我可以访问共享。如果可以,我在线。如果我不能,我就离线

如果在公司局域网上,但DCs不可用,您也可以脱机