之前我写网络管理工具的时候要对输入的IP和掩码进行验证。关于IP地址的合法性验证很简单,方法也很多,比如字符串分解、正则表达式等,但是子网掩码的要求要比IP更严格一点。 一个合法的子网掩码要满足如下条件: 注:由于第3点跟所设置的IP有关,所以暂不考虑。 我的想法是先验证是否为合法IP,然后将掩码转化成32无符号整型,取反为000...00111...1,然后再加1为00...01000...0,此时为2^n,如果满足就为合法掩码。 C语言代码 |
之前我写网络管理工具的时候要对输入的IP和掩码进行验证。关于IP地址的合法性验证很简单,方法也很多,比如字符串分解、正则表达式等,但是子网掩码的要求要比IP更严格一点。 一个合法的子网掩码要满足如下条件: 注:由于第3点跟所设置的IP有关,所以暂不考虑。 我的想法是先验证是否为合法IP,然后将掩码转化成32无符号整型,取反为000...00111...1,然后再加1为00...01000...0,此时为2^n,如果满足就为合法掩码。 C语言代码 |