1. #include <winsock2.h>

  2. #include <iostream>

  3. using namespace std;

  4. #pragma comment(lib, "WS2_32.lib")

  5. void getIP()

  6. {

  7. WSADATA WSAData; //WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。

  8. if (WSAStartup(MAKEWORD(2, 0),&WSAData)) // 初始化Windows sockets API

  9. {

  10. printf("WSAStartup failed %s\n", WSAGetLastError());

  11. exit(-1); //异常退出

  12. }

  13. char hostName[256];

  14. if(gethostname(hostName,sizeof(hostName))) //获取主机名

  15. {

  16. printf("Error: %u\n", WSAGetLastError());

  17. exit(-1);

  18. }

  19. hostent *host=gethostbyname(hostName); // 根据主机名获取主机信息(含IP)

  20. if(host==NULL)

  21. {

  22. printf("Error: %u\n", WSAGetLastError());

  23. exit(-1);

  24. }

  25. cout<<"正式的主机名: "<<host->h_name<<endl

  26. <<"主机地址类型: "<<host->h_addrtype<<endl

  27. <<"地址清单: "<<host->h_addr_list<<endl

  28. <<"别名列表: "<<host->h_aliases<<endl

  29. <<"地址长度: "<<host->h_length<<endl;

  30. for(int i=0;host->h_addr_list[i]!=0;i )

  31. {

  32. cout<<"该主机IP"<<i 1<<": "<<inet_ntoa(*(struct in_addr*)*host->h_addr_list)<<endl;

  33. }

  34. WSACleanup();

  35. }

  36. int main()

  37. {

  38. getIP();

  39. system("pause");

  40. return 0;

  41. }

全局配置自动获取ip地址(获取本机IP地址信息)(1)

,