工控编程吧
标题:
上位机MFC如何获得本地计算机的IP地址
[打印本页]
作者:
qq263946146
时间:
2019-8-8 09:32
标题:
上位机MFC如何获得本地计算机的IP地址
可以事先通过函数gethostname获得主机名。再使用主机名获得计算IP,调用函数gethostbyname就好。
下面是关键代码,可以在自己工程中测试。
#include <Winsock2.h>
#pragma comment (lib,"Ws2_32.lib")
void CGkbc8Dlg::OnButton1()
{
//初始化WinSock
WSADATA WSAData;
if (WSAStartup(MAKEWORD(2,0), &WSAData) != 0)
{
return;
}
//获得本地计算机主机名称
CString strName = _T("");
gethostname(strName.GetBuffer(1024), 1024);
strName.ReleaseBuffer();
//获得本地计算机信息
struct hostent* pHostEnt = gethostbyname(strName);
if (pHostEnt == NULL)
{
return;
}
//获得本地计算机IP地址
CString strText = _T("");
strText += _T("本地计算机的IP地址:\n");
int n = 0;
while (pHostEnt->h_addr_list[n] != NULL)
{
CString strTemp = _T("");
strTemp.Format(_T("%d.%d.%d.%d\n"),
(pHostEnt->h_addr_list[n][0] & 0x00FF),
(pHostEnt->h_addr_list[n][1] & 0x00FF),
(pHostEnt->h_addr_list[n][2] & 0x00FF),
(pHostEnt->h_addr_list[n][3] & 0x00FF));
strText += strTemp;
n++;
}
AfxMessageBox(strText);
//清理WinSock
WSACleanup();
}
复制代码
[MFC408]1[/MFC408][weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4