windows 下代码实现 判断自己的内外网
代码:
UINT judge_pc_state()
{
//获取本地ip
STHOSTINFO sHostInfo;
Obj_AsyncNetwork.GetLocalHostInfo(&sHostInfo);
wstring local_ip_ = sHostInfo.strHostIP[0];
USES_CONVERSION;
unsigned int ip = (unsigned int)inet_addr(W2A(local_ip_.c_str()));
int bValid = 1;
//unsigned int i = ip>>24;
if( (ip>>24 == 0xa) || (ip>>16 == 0xc0a8) || (ip>>22 == 0x2b0) )
{
//表示是内网
bValid = 0;
}
return bValid;
}
当我处在内网的时候,为什么不进if语句,是不是ip从字符串向int型转换时错误