Get Local IP Address and Set in the IP Control
2015-10-08 17:21
495 查看
void GetLocalIPAddress() { char sHostName[100]; WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD( 2, 0 ); if ( WSAStartup( wVersionRequested, &wsaData ) == 0 ) { gethostname(sHostName,sizeof(sHostName)); struct hostent FAR * lpHostEnt = gethostbyname(sHostName); if(lpHostEnt == NULL) { MessageBox(_T("error")); } //获取IP LPSTR lpAddr = lpHostEnt->h_addr_list[0]; if(lpAddr) { struct in_addr inAddr; memmove(&inAddr,lpAddr,4); CString str; str = inet_ntoa(inAddr); m_edit = str; UpdateData(FALSE); DWORD dw1 = inet_addr(inet_ntoa(inAddr)); WORD wd1 = LOWORD(dw1);//取高十六位 WORD wd2 = HIWORD(dw1);//取低十六位 BYTE bte1 = LOBYTE(wd1); BYTE bte2 = HIBYTE(wd1); BYTE bte3 = LOBYTE(wd2); BYTE bte4 = HIBYTE(wd2); m_ip.SetAddress(bte1,bte2,bte3,bte4); } WSACleanup(); } }
void GetIPCString()
{
WSADATA wsadata;
if(0 != WSAStartup(MAKEWORD(2, 2), &wsadata)) //初始化
{
AfxMessageBox(L"初始化网络环境失败!");
return;
}
char szHostName[MAX_PATH + 1];
gethostname(szHostName, MAX_PATH); //得到计算机名
hostent *p = gethostbyname(szHostName); //从计算机名得到主机信息
if(p == NULL)
{
AfxMessageBox(L"得到本机网络信息失败!");
return;
}
CString m_strName;
m_strName = szHostName; //保存主机名
AfxMessageBox(m_strName);
int nCount = 0; //保存主机地址
char *pIP = inet_ntoa(*(in_addr *)p->h_addr_list[0]);//将32位IP转化为字符串IP
CString m_strAddr;
USES_CONVERSION;
m_strAddr = A2W(pIP);
m_edit = m_strAddr;
UpdateData(FALSE);
WSACleanup(); //释放Winsock API
}
相关文章推荐
- 解决Attempting to badge the application icon but haven't received permission from the user to badge th
- iOS 心得三 工作中遇到的相关要点
- Python模块paramiko:操作远程服务器
- joomla本地安装全过程
- 如何更改博客的名称
- 设计模式概览
- 制作红头文件
- 如何关闭 APN 推送?
- Java阳历转农历
- 通道
- hibernate 工程配置说明
- [IOS]适配IOS9
- 韩顺平java 第30讲 布局管理器
- android Interpolator动画插值器
- 窗口 视口
- Android布局大全
- cocos代码研究(18)Widget子类Slider学习笔记
- 工作备忘-Xcode添加静态库以及编译选项配置常见问题
- iOS 类型编码(Type Encodings)
- Android初学习 - excludeFromRecents属性的一点说明