dwordipstring
- 作者: 晓风残月洞房夜
- 来源: 51数据库
- 2020-04-21
一、CIPAddressCtrl的GetAddress()函数获得的DWORD型的IP地址转换
DWORD dwAddress ;
m_ip.GetAddress(dwAddress);
CString str;
str.Format("%d.%d.%d.%d",(0xFF000000&dwAddress)>>24,(0xFF0000&dwAddress)>>16,(0xFF00&dwAddress)>>8,0xFF&dwAddress);
AfxMessageBox(str);
二、如何把IP字符串转化成数字
//将CString 型IP地址在IPAddressCtrl中显示
CString strIP="192.168.1.1";
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("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
三、CString如何赋值给DWORD类型(IP地址)
将字符串分割成四部分,分割字符串可以用CString的Mid函数,以'.'为分割界限
每部分用atoi转成整型,再将四个整形转成DWORD型,第一个数乘以2的24次方+第二个数乘以2的16次方+第三个数乘以2的8次方+第四个数
大致算法是这样,有什么细节不知道的再补充^_^
-------------------------------------------
还是自己写的好,有思考才有进步,你都能用VC了,相信有了算法自己肯定能写出来,加油!
四、C++ 将IP地址172.17.72.250 保存到4字节存储区域,再转化成字符串,
#include
int main(void)
{
char str[]="172.17.72.250";
unsigned char ip[4]={0,0,0,0};
sscanf(str, "%d.%d.%d.%d", ip, ip+1, ip+2, ip+3);
printf("%02x %02x %02x %02x \n", ip[0], ip[1], ip[2], ip
[3]);
return 0;
}
/*运行结果:
ac 11 48 fa
*/
五、如何获取从程序界面输入的IP地址
DWORD dwIP;
BYTE btTmp;
CString strTmpIp;
m_IpAddr.GetAddress(dwIP);//从控个把获取IP地址
//下面对IP地址进行倒序.如果不的话,获取的IP地址字符串就会是倒过来的顺序.
//比如:如果你输入192.168.0.1话,则IP地址字符串将会是1.0.168.192
btTmp = ((BYTE *)&dwIP)[0];
((BYTE *)&dwIP)[0] = ((BYTE *)&dwIP)[3];
((BYTE *)&dwIP)[3] = btTmp;
btTmp = ((BYTE *)&dwIP)[1];
((BYTE *)&dwIP)[1]= ((BYTE *)&dwIP)[2];
((BYTE *)&dwIP)[2]= btTmp;
strTmpIp =inet_ntoa(*((in_addr *)&dwIP));//获取IP地址的字符串
转载请注明出处51数据库 » dwordipstring
