QQ登录

只需一步,快速开始

328上位机VC MFC通过计算机名称获得IP地址

[ 复制链接 ]

328上位机VC MFC通过计算机名称获得IP地址

328上位机VC MFC通过计算机名称获得IP地址

通过计算机名称获得IP地址
功能展示
相同网络下如果两台电脑IP相同,计算机就会提示IP冲突,每台计算机都有一唯一的名称,可以通过计算机名称获得其对应的IP地址,我们当前例程就实现了这一功能,效果如图,点击<获取本机IP>例程就会将获得的IP地址走入地址控件,如果获取失败会提示相应信息;

要点提示
在winsock中申明有一个函数Gethostbyname()这个函数可以通过计算机名获得其相关的信息,其中包括IP地址;
struct hostent FAR * gethostbyname ( const char FAR * name ); name 为包含计算机名称的字符串,如果没有错误发生,gethostbyname()返回如上所述的一个指向hostent结构的指针,否则,返回一个空指针。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码

实现功能
1.新建基于对话框的应用程序
2.依照例程界面添加一按钮控件<获取本机IP>及一IP地址控件IDC_IPADDRESS1,关联按钮的点击函数,实现IP的获取

#include "afxsock.h"
void CGkbc8Dlg::OnGetip()
{
WSAData wsaData;
if(WSAStartup(MAKEWORD(1,1),&wsaData)!=0)
{
MessageBox("获取IP失败");
return;
}
char host_name[255];
if(gethostname(host_name,sizeof(host_name))==SOCKET_ERROR)
{
MessageBox("获取主机名失败","",MB_OK);
return ;
}
struct hostent*phe=gethostbyname(host_name);
if(phe==0)
{
MessageBox("获取IP失败","",MB_OK);
return;
}
struct in_addr addr;
memcpy(&addr,phe->h_addr_list[0],sizeof(addr));
inet_ntoa(addr);
CIPAddressCtrl* pIP = (CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1);//IP控件指针
pIP->SetWindowText(inet_ntoa(addr));
WSACleanup();
}


我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:328.上位机VC MFC通过计算机名称获得IP地址.zip 
文件大小:135.92 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索