- 首先载入Winsock动态库,代码如下:
- int CIPAddressDlg::StartUp()
- {
- WORD wVersionRequested;
- WSADATA wsaData;
- int err;
- wVersionReuqested=MAKEWORD(2,0);
- err=WSAStartup(wVersionReuqested, &wsaData);
- if(err!=0)
- {
- return err;
- }
- if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=0)
- {
- WSACleanup();
- return WSAVERNOTSUPPORTED;
- }
- return 0;
- }
- 以下的GetLocalHostName()函数为现实获取计算机名称,
- int CIPAddressDlg::GetLocalHostName(CString&sHostName)
- {
- char szHostName[256];
- int nRectCode;
- nRectCode=gethostname(szHostName,sizeofa(szHostName));
- if(nRectCode!=0)
- {
- sHostName=_T("Not available");
- return WSAGetLastError();
- }
- sHostName=szHostName;
- return 0;
- }
- 然后调用GetIPAddress来获取IP地址
- int CIPAddressDlg::GetIPAddress(const CString& sHostName, CString&sIPAddress)
- {
- struct hostent FAR *lpHostEnt=gethostbyname(sHostName);
- if(lpHostEnt==NELL)
- {
- sIPAddress=_T("");
- return WSAGetLastError();
- }
- LPSTR lpAddr=lpHostEnt->h_adr_list[0];
- if(lpAddr)
- {
- struct in_addr inAddr;
- memmove (&inAddr,lpAddr, 4);
- sIPAddress=inet_ntoa (inAddr);
- if(sIPAddress.IsEmpty())
- sIPAddress=_T("Not available");
- }
- return 0;
- }
get ip address
最新推荐文章于 2022-02-25 13:54:31 发布