得到本机ip

// GetLocalIP.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "GetLocalIP.h"
#include "winsock2.h"
#pragma comment(lib,"wsock32")
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
 int nRetCode = 0;
 WSADATA wsaData;
  int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
  if ( iResult != NO_ERROR )
  printf("Error at WSAStartup()/n");
 // initialize MFC and print and error on failure
 if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
 {
  // TODO: change error code to suit your needs
  cerr << _T("Fatal Error: MFC initialization failed") << endl;
  nRetCode = 1;
 }
 else
 {
  // TODO: code your application's behavior here.
  // CString strHello;
  // strHello.LoadString(IDS_HELLO);
  // cout << (LPCTSTR)strHello << endl;
  CString sIP;//用于存放本机IP  
  char hostname[200];//用于存放本机名字  
  int nRetCode;//返回值  
  //获取本机名称  
  nRetCode = gethostname(hostname,200);  
  
  if (nRetCode != 0)  
  {  
  // An error has occurred  
  int err=WSAGetLastError();  
  CString message;  
  message.Format(_T("错误:%d"),err);  
  AfxMessageBox(message);  
  }  
  
  //获取本机IP  
  //使用 GetAddressByName  
  struct hostent FAR *lpHostEnt = gethostbyname (hostname);  
  
  if (lpHostEnt == NULL)  
  {  
  // An error occurred.  
  int err=WSAGetLastError();  
  CString message;  
  message.Format(_T("错误:%d"),err);  
   
  }  
  LPSTR lpAddr = lpHostEnt->h_addr_list[0];  
  if (lpAddr) 
  {  
  struct in_addr inAddr;  
  memmove (&inAddr, lpAddr, 4);  
  sIP = inet_ntoa (inAddr);  
  if (sIP.IsEmpty())  
  AfxMessageBox(_T("wrong")); 
  else
  AfxMessageBox(sIP);
  }  
 }
 return nRetCode;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值