CLocalMachine.cpp
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // CLocalMachine.cpp: implementation of the CLocalMachine class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "CLocalMachine.h"
  6. //#include <Winsock2.h>
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //#pragma comment(lib, "Ws2_32.lib")
  13. //////////////////////////////////////////////////////////////////////
  14. // Construction/Destruction
  15. //////////////////////////////////////////////////////////////////////
  16. CLocalMachine::CLocalMachine()
  17. {
  18. m_bInit = false;
  19. InitSystem();
  20. }
  21. CLocalMachine::~CLocalMachine()
  22. {
  23. Uninit();
  24. }
  25. void CLocalMachine::InitSystem(void)
  26. {
  27. if (m_bInit)
  28. return;
  29. // Init socket
  30. WORD     wVersionRequested = MAKEWORD(2, 0);
  31. WSADATA  wsaData;
  32. if (WSAStartup(wVersionRequested, &wsaData) == 0)
  33. {
  34. m_bInit = true;
  35. }
  36. // Other init...
  37. if (m_bInit)
  38. {
  39. //m_bInit = 
  40. }
  41. }
  42. void CLocalMachine::Uninit(void)
  43. {
  44. // Clean up socket
  45. if (m_bInit)
  46. {
  47. WSACleanup();
  48. }
  49. }
  50. bool CLocalMachine::GetIPAddress(char * outIP, char * outHost)
  51. {
  52. if (m_bInit)
  53. {
  54. char   name[255];
  55. if (gethostname(name, sizeof(name)) == 0)
  56. {
  57. // Output the host name
  58. if (outHost != NULL)
  59. strcpy(outHost, name);
  60. PHOSTENT  hostinfo;
  61. if((hostinfo = gethostbyname(name)) != NULL)
  62. {
  63. // Output local machine's IP address string
  64. LPCSTR pIP = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
  65. if (outIP != NULL)
  66. strcpy(outIP, pIP);
  67. return true;
  68. }
  69. }
  70. }
  71. return false;
  72. }