- 论坛徽章:
- 1
|
本帖最后由 jiufei19 于 2010-06-22 22:54 编辑
回复 23# jiufei19
自己顶!
网上搜到一篇讲iptables命令的文章,其中给出的如下说明似乎解答了我的这个困惑:
----------------------------------------------------------
Match -s, --src, --source
Example iptables -A INPUT -s 192.168.1.1
Explanation 以IP源地址匹配包。地址的形式如下:
1、单个地址,如192.168.1.1,也可写成 192.168.1.1/255.255.255.255或192.168.1.1/32
2、网络,如192.168.0.0/24,或 192.168.0.0/255.255.255.0
3、在地址前加英文感叹号表示取反,注意空格,如--source ! 192.168.0.0/24 表示除此地址外的所有地址
4、缺省是所有地址0.0.0.0/0
----------------------------------------------------------
显然对于单个地址的规则而言,掩码是255.255.255.255,而并非之前我错误以为是255.255.255.0,这样在进行如下操作时:
(ip->saddr & ipinfo->smsk.s_addr) != ipinfo->src.s_addr
结果就很明显了!
于是,无论是单个地址的规则,还是针对网络号进行设置的规则,上述代码都正确了,终于完全搞定!!! |
|