首页 > 编程语言 > 详细

MFC-获取本地IP地址并返回cstring

时间:2019-11-08 13:52:35      阅读:289      评论:0      收藏:0      [点我收藏+]

获取IP地址并返回Cstring

CString CAddStdDlg::GetLocalIP()
{
	WSADATA wsaData;
	int err = WSAStartup(MAKEWORD(2, 0), &wsaData);
	if (err != 0)
	{
		return _T("");
	}

	char szHostName[MAX_PATH] = { 0 };
	int nRetCode;
	nRetCode = gethostname(szHostName, sizeof(szHostName));

	char* lpLocalIP;
	PHOSTENT hostinfo;

	if (nRetCode != 0)
	{
		WSACleanup();
		return _T("");
	}

	hostinfo = gethostbyname(szHostName);
	lpLocalIP = inet_ntoa(*(struct in_addr*) * hostinfo->h_addr_list);

	CString aa(lpLocalIP);

	WSACleanup();

	return aa;
}

  

void CMyDlg::GetHostAddress(CString &strIPAddr)
{
char    HostName[100];
gethostname(HostName, sizeof(HostName));// 获得本机主机名.

hostent* hn;
hn = gethostbyname(HostName);//根据本机主机名得到本机ip

strIPAddr=inet_ntoa(*(struct in_addr *)hn->h_addr_list[0]);//把ip换成字符串形式
}

//摘自 https://blog.csdn.net/imxiangzi/article/details/38264563

  

代码没有问题,在使用的时候 报错

warning C4996: ‘gethostbyname‘: Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API

这是因为新版本VS不支援该函数,需要修改下图中SDL检查 为 “否”

技术分享图片

 

 

MFC-获取本地IP地址并返回cstring

原文:https://www.cnblogs.com/gohikings/p/11819288.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!