char name[20];
gethostname(name,20);
hostent * host=gethostbyname(name); struct in_addr inAddr;
memmove(&inAddr,host->h_addr_list[0],4); m_sIP=inet_ntoa(inAddr);
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS))->SetAddress(inAddr.S_un.S_un_b.s_b1,inAddr.S_un.S_un_b.s_b2,inAddr.S_un.S_un_b.s_b3,inAddr.S_un.S_un_b.s_b4);
MFC中IP地址控件中获取到IP地址转换字符串
MFC中,用CIPAddress类的GetAddress()得到BYTE或DWORD的IP地址,转换成字符串的方法:
CIpAddressCtrl的GetAddress()
int GetAddress( BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3 );
int GetAddress( DWORD& dwAddress );
CString strIP;
BYTE IP0,IP1,IP2,IP3; DWORD dwIP;
m_Ip.GetAddress(&IP0,&IP1,&IP2,&IP3);
strIP.Format(_T(\或者
m_Ip.GetAddress(&dwIP);
strIP.Format(_T(\
如果你想去IP可以直接用: m_Ip.GetWindowText(strIP);
VC++ MFC编程中 IP控件的使用
IP地址在计算机中表示是32位二进制,通过GetAddress()来获得IP时,得到的是一个由二进制所转化的长整型IP地址,比如IP地址202.201.112.98的长整型表示就是:3402199138,同样也可以使用http://3402199138/来访问,所以在进行套接字绑定时要进行相应的转换。
//将CString 型IP地址在IPAddressCtrl中显示 CString strIP= \ DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP; m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3)); //将IPAddressCtrl中的IP地址获得并转换成CString型 unsigned char *pIP; CString strIP; DWORD dwIP;
m_ipAddr.GetAddress(dwIP); pIP = (unsigned char*)&dwIP;
strIP.Format( \ *(pIP+2), *(pIP+1), *pIP);