有很多个IP段,请问如何判断一个IP是在其中一个IP段里呢?也就是做ip过滤。小弟愚钝,请各位GG帮忙,最好能给出代码啊,关键片断就行啊!

解决方案 »

  1.   

    想办法把它们转成二进制把,如202.114.56.18->11001010.1110010.111000.10010
    子网掩码也是一样的转换,把ip地址与子网掩码按位与操作,就可以得到网络号,
    如果2个ip地址与掩码得到的网络号都是一样的,那就是同一网段的。
    如,202.114.56.48 202.114.56.49 255.225.225.0
    与操作的网络号都是202.114.56.0 那就是一个网段的。
      

  2.   

    #include "afxsock.h"
    AfxSocketInit(NULL);
    long mast=inet_addr("255.255.255.0");
    long ip=inet_addr("202.193.64.34");// 限制IP:202.193.64.0----202.193.64.255
    if(mask&&mask==inet_addr("202.193.64.0"))
    {
     //forbidden.
    }