获取计算机名函数

1 函数GetComputerName可获得本地计算机的NetBIOS名称 该名称在系统启动时从注册表中读取 如果本地计算机是群集计算机上的一个节点,则返回群集虚拟服务器的名称
BOOL GetComputerName(LPTSTR lpBuffer,LPDWORD lpnSize)
2 gethostname函数获得本地计算机名
int gethostname(char* name,int namelen);
3 gethostbyname函数从主机名数据库中得到对应的“主机”(有名字和地址标志),注意这里得到的主机可能是多个而不只是一个
struct hostent* FAR gethostbyname(const char* name)
4 gethostbyaddr函数可以从网络地址得到对应的主机(由名字和地址标识),注意这里得到的主机可能是多个而不只一个
struct HOSTENT* FAR gethostbuaddr(const char* addr,int len ,int type)
 5 获取计算机的子网掩码
函数GetAdaptersInfo()可以获得本地计算机的网络信息,从而获得该计算机的子网掩码

 

void CComputerNetBiosNamexDlg::OnComputerNetBiosName()
{
 WSADATA wsaData;
 WSAStartup(MAKEWORD(1,1),&wsaData);
 char buffer[50];
 DWORD nSize=strlen(buffer);
 GetComputerName(buffer,&nSize );
 SetDlgItemText(IDC_ComputerNetBiosName,buffer);
 WSACleanup(); 

}

void CComputerNetBiosNamexDlg::OnLOADComputername()
{
 WSADATA wsaData;
 WSAStartup(MAKEWORD(1,1),&wsaData);
 char name[50];
 gethostname(name,strlen(name));
 SetDlgItemText(IDC_LOADComputername,name);
 WSACleanup();
 
}

void CComputerNetBiosNamexDlg::OnComputer()
{
 WSADATA wsaData;
 WSAStartup(MAKEWORD(1,1),&wsaData);
 char name[50];
 gethostname(name,strlen(name));
 struct hostent* pHost;
 pHost=gethostbyname(name);
 SetDlgItemText(IDC_Computer,pHost->h_name );
 for(int i=0;pHost!=NULL&& pHost->h_addr_list[i]!=NULL;i++)
 {
  
  CString str;
  str=inet_ntoa(*(struct in_addr*)pHost->h_addr_list[i]);
  m_list.AddString(str);
 }
 WSACleanup();
 
}

void CComputerNetBiosNamexDlg::Ongethostbuaddr()
{
 WSADATA wsaData;
 WSAStartup(MAKEWORD(1,1),&wsaData);
 DWORD dwIPAddr;
 dwIPAddr=inet_addr("192.168.0.2");
 hostent* pht;
 pht=gethostbyaddr((LPSTR)&dwIPAddr,4,AF_INET);
 MessageBox(pht->h_name );
 WSACleanup();
}

你可能感兴趣的:(获取计算机名函数)