我已登录到工作组MSHOME,需要访问域“xxx.local”上的服务器pc的命名列表。
我试过这个:
const int MAX_PREFERRED_LENGTH = -1;
int SV_TYPE_WORKSTATION = 1;
int SV_TYPE_SERVER = 2;
IntPtr buffer = IntPtr.Zero;
IntPtr tmpBuffer = IntPtr.Zero;
int entriesRead = 0;
int totalEntries = 0;
int resHandle = 0;
int sizeofINFO = Marshal.SizeOf(typeof(_SERVER_INFO_100));
int ret = NetServerEnum(null, 100, ref buffer, MAX_PREFERRED_LENGTH,
out entriesRead, out totalEntries, SV_TYPE_WORKSTATION | SV_TYPE_SERVER,
"xxx.local", out resHandle);
...但是返回一个返回值6118(找不到浏览器服务器)。当我将“xxx.local”设为null时,也会发生这种情况,这至少应该返回1台服务器(我自己的PC)?
答案 0 :(得分:0)
好的,我觉得它好像:
int ret = NetServerEnum(null,100,ref buffer,MAX_PREFERRED_LENGTH, out entriesRead,out totalEntries,SV_TYPE_WORKSTATION | SV_TYPE_SERVER, “xxx.local”,out resHandle);
...是访问其他域或工作组上的计算机列表的正确用法。 xxx.local作为域名没有返回任何内容,但xxx返回了我需要的内容。您也可以在命令提示符下使用net view / domain:xxx进行测试。