#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>int GetLocalHostName(char *sHostName);
int GetIPAddress(const char *sHostName, char *sIPAddress);//
// Function: main
//
int main()
{
WSADATA wsd;
int nRetCode;
char m_sHostName[256],
m_sIPAddress[256]; if(WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
printf("Failed to load Winsock library!\n");
return 1;
} nRetCode = GetLocalHostName(m_sHostName);
nRetCode = GetIPAddress(m_sHostName, m_sIPAddress); printf("%s\n%s", m_sHostName, m_sIPAddress);
WSACleanup();
return 0;
}int GetLocalHostName(char *sHostName)
{
char szHostName[256];
int nRetCode; nRetCode = gethostname(szHostName,sizeof(szHostName));
if(nRetCode != 0)
{
//错误产生
sHostName = "Not avaiable";
return WSAGetLastError();
}
strcpy(sHostName, szHostName);
return 0;
}int GetIPAddress(const char *sHostName, char *sIPAddress)
{
struct hostent FAR *lpHostEnt = gethostbyname(sHostName);
if(lpHostEnt == NULL)
{
//错误产生
sIPAddress = "";
return WSAGetLastError();
} LPSTR lpAddr = lpHostEnt->h_addr_list[0];
if(lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr,lpAddr,4);
//转化成标准IP地址形式
sIPAddress = inet_ntoa(inAddr);
if(sIPAddress == "")
sIPAddress = "Not available";
}
return 0;
}
-----------Configuration: 获取主机名和计算机IP地址 - Win32 Debug-----------
Linking...
获取主机名和计算机IP地址.OBJ : error LNK2001: unresolved external symbol __imp__WSACleanup@0
获取主机名和计算机IP地址.OBJ : error LNK2001: unresolved external symbol __imp__WSAStartup@8
获取主机名和计算机IP地址.OBJ : error LNK2001: unresolved external symbol __imp__WSAGetLastError@0
获取主机名和计算机IP地址.OBJ : error LNK2001: unresolved external symbol __imp__gethostname@8
获取主机名和计算机IP地址.OBJ : error LNK2001: unresolved external symbol __imp__inet_ntoa@4
获取主机名和计算机IP地址.OBJ : error LNK2001: unresolved external symbol __imp__gethostbyname@4
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/获取主机名和计算机IP地址.exe : fatal error LNK1120: 7 unresolved externals
Error executing link.exe.获取主机名和计算机IP地址.exe - 8 error(s), 0 warning(s)