网上有不少文章介绍如何判断IP是否在同一子网内,但几乎没看见介绍如何判断IP在某个IP范围内的文章,我在这里就写了个简单的示例代码,供大家参考。 #include < string .h > #include < winsock2.h > #include < stdio.h > #pragma comment(lib,"wsock32.lib") #pragma comment(lib,"Ws2_32.lib") int main( void ) ... { char* sip="192.168.0.1";//起始IP char* dip="192.168.0.10";//末尾IP char* ip="192.168.0.14";//待判断的IP in_addr ssip,ddip,iip; ssip.s_addr=inet_addr(sip); ddip.s_addr=inet_addr(dip); iip.s_addr=inet_addr(ip);//通过in_addr结构中的u_long型S_addr参数来比较 if(ssip.s_addr<=iip.s_addr && ddip.s_addr>=iip.s_addr) ...{ printf("the IP: %s is between %s and %s ", ip, sip, dip); } else ...{ printf("the IP: %s is out of range. ", ip); } return 0; }