windows - 如何确定 Windows 计算机的身份?

标签 windows winapi identity

我有一个由服务器和客户端进程组成的程序。两者都运行在 Windows 系统上 - Windows 2000 或更高版本。这两个进程可以运行在同一台机器上,也可以运行在两台不同的机器上。

客户端如何判断是否与服务器运行在同一台机器上?如果服务器没有运行,客户端无论如何都无法工作,并且不关心服务器可能在哪里 - 所以这种情况是不可能的。我听说每台 Windows 计算机都有一个 UUID - 我可以获取它并用于此目的吗?

最佳答案

Windows 网络要求计算机名称是唯一的,因此调用 GetComputerName api 并让客户端和服务器交换名称(并将收到的名称与它们看到的名称进行比较)就足够了。如果客户端和服务器可以彼此独立启动,那么您将需要某种协议(protocol)来完成此过程。客户端发起交换,而服务器仅在从客户端接收到名称时才发送其名称,这似乎是合乎逻辑的。如果客户端看到相同的名称,则可以中止连接。

我相信大多数虚拟机系统都会允许虚拟机有自己的名称,因此您应该仍然可以在虚拟机上进行测试。然而,我对所有虚拟化技术都没有丰富的经验,所以不能肯定。

关于windows - 如何确定 Windows 计算机的身份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896946/

相关文章:

identity - .NET 4.5 中的 microsoft.identityModel 和 system.identityModel 有什么区别

windows - 如何在 Windows CMD 中一行运行两个命令?

c++ - Py ILM Base 无法在 Windows 上编译

windows - 在 Windows 中设置 HADOOP_HOME 变量

windows - stdcall 可以有可变参数吗?

asp.net - 如何设置 Thread.CurrentPrincipal 以在整个应用程序中使用?

windows - 如何向我的 schtask 命令添加随机时间偏移量?

ruby - Win32 - 可以枚举属于调用线程的窗口吗?

c++ - Windows 获取卷上所有文件的大小列表

ASP.NET core 2 如何跳过身份关联表?