CString dwIP2csIP(DWORD dwIP)
{
CString strIP = _T("");
WORD add1,add2,add3,add4;
add1=(WORD)(dwIP&255);
add2=(WORD)((dwIP>>8)&255);
add3=(WORD)((dwIP>>16)&255);
add4=(WORD)((dwIP>>24)&255);
strIP.Format("%d.%d.%d.%d",add4,add3,add2,add1);
return strIP;
}
DWORD csIP2dwIP(LPCTSTR strIP)
{
int len=_tcslen(strIP);
if(len <6||len> 15) return 0;
DWORD dwip=0;
char *p;
BYTE dd;
char field[4];
int i=0,j=3;
for(p=(char*)strIP;*p!=NULL;p++)
{
if(*p >= '0' && *p <= '9')
field[i++]=*p;
if(*(p+1) == '.'||(*(p+1) == '/0 '))
{
field[i]=0;
i=0;
dd=(BYTE)::atoi(field);
dwip=dwip|((DWORD)dd <<(j--)*8);
}
}
if(j!=-1)
return 0;
return dwip;
}