2011-04-04 32 views
1

你好,我使用NetServerEnum獲得本地網絡計算機(LAN)的列表 我想知道它的回報(出)地址 例如,他們應該像netserverenum的迴歸

  • \ 192.168.1.10 \ ComputerName1
  • \ 192.168.1.10 \ ComputerName2
  • \ 192.168.1.10 \ ComputerName3

?或者只是網絡路由器上存在的計算機名稱?

我不是在網絡機器上測試它,它會真的很有你告訴我這一點。

謝謝。

回答

1

NetServerEnum基本上是NetBIOS日子裏的剩餘物,所以它只處理「扁平」(NetBIOS)名稱。這裏有一段代碼可以顯示它可以給你什麼名字:

#include <windows.h> 
#include <lm.h> 
#include <iostream> 

int main() { 

    SERVER_INFO_100 *info; 
    DWORD count; 
    DWORD total_servers; 
    DWORD resume = 0; 

    NetServerEnum(NULL, 
     100, 
     (BYTE **)&info, 
     MAX_PREFERRED_LENGTH, 
     &count, 
     &total_servers, 
     SV_TYPE_NT, NULL, 
     &resume); 

    for (int i=0; i<count; i++) 
     std::wcout << info[i].sv100_name << "\n"; 

    NetApiBufferFree(info); 
    return 0; 
} 
0

不返回網絡路由器的名稱或IP地址。只有計算機名稱已在sv100_name或SERVER_INFO_10x結構sv101_name場返回:

  • ComputerName0
  • ComputerName1
  • ComputerName2
  • ...
  • ComputerNameN