工控编程吧
标题: 上位机MFC如何通过IP地址获得主机名称 [打印本页]
作者: qq263946146 时间: 2019-8-8 09:46
标题: 上位机MFC如何通过IP地址获得主机名称
我们也可以通过 一个指定的IP获得主机的名称,主要通过函数gethostbyaddr实现。例如我们添加一个IP控件,关联变量m_ctrlAddr,就可以调用下面代码来测试
- void CGkbc8Dlg::OnButton2()
- {
- //初始化WinSock
- WSADATA WSAData;
- if (WSAStartup(MAKEWORD(2,0), &WSAData) != 0)
- {
- return;
- }
- //获得IP地址
- UpdateData(TRUE);
- if (m_ctrlAddr.IsBlank())
- {
- AfxMessageBox(_T("IP地址不能为空。"));
- return;
- }
- BYTE Addr[4];
- m_ctrlAddr.GetAddress(Addr[0], Addr[1], Addr[2], Addr[3]);
- //获得主机信息
- struct hostent* pHostEnt = gethostbyaddr((char*)Addr, 4, AF_INET);
- if (pHostEnt == NULL)
- {
- return;
- }
- //获得主机名称
- CString strText = _T("");
- strText.Format(_T("%d.%d.%d.%d的主机名称:%s"),
- Addr[0],
- Addr[1],
- Addr[2],
- Addr[3],
- pHostEnt->h_name);
- AfxMessageBox(strText);
-
- //清理WinSock
- WSACleanup();
- }
复制代码
(, 下载次数: 0)