1
ovear OP 果然睡得晚会导致智商下降OAQ
|
2
ryd994 2014-12-07 09:11:35 +08:00
也是联动上贴,既然交集一定是子集,那补集无非就是往上和往下数而已
|
3
LazyZhu 2014-12-07 09:32:27 +08:00
要补集总得有全集吧,请问是哪个:)
0.0.0.0/0 1.0.0.0/7 1.2.0.0/15 1.2.3.0/22 |
4
LazyZhu 2014-12-07 09:39:51 +08:00 1
|
5
Showfom 2014-12-07 10:51:45 +08:00 via iPhone
第一次听到这个词语。。。。。
楼主这叫CIDR 路由器里自己设置的 |
6
ovear OP |
7
LazyZhu 2014-12-07 13:55:56 +08:00
|
8
ovear OP @LazyZhu =.=貌似这不是补集也。。
其实我就是想要一个算法=。= 怎么在一整段ip里面分割 比如说在所有ip里面 排除 173.194.0.0/16 64.233.165.0/24 这两段 我的想法是 首先从开头来找 0.0.0.0 然后找到 173.194.0.0这个首ip,然后想办法用子网掩码近似表示(这个过程不知道是否可行,网基一团糟) |
9
LazyZhu 2014-12-07 14:23:36 +08:00 1
|
12
ovear OP |
14
ryd994 2014-12-07 15:37:45 +08:00
其实这就是个二分……
|
15
Showfom 2014-12-07 15:56:20 +08:00
你自己是找不出来的,因为机房怎么设置的你不知道。。。
|
17
LazyZhu 2014-12-07 16:18:49 +08:00 1
# cat /tmp/test.list
1.2.3.0/22 9.10.11.0/23 101.120.0.0/14 # cidr_complement.sh 0.0.0.0/8 1.0.0.0/15 1.2.0.0/23 1.2.2.0/24 1.2.7.0/24 1.2.8.0/21 1.2.16.0/20 1.2.32.0/19 1.2.64.0/18 1.2.128.0/17 1.3.0.0/16 1.4.0.0/14 1.8.0.0/13 1.16.0.0/12 1.32.0.0/11 1.64.0.0/10 1.128.0.0/9 2.0.0.0/7 4.0.0.0/6 8.0.0.0/8 9.0.0.0/13 9.8.0.0/15 9.10.0.0/21 9.10.8.0/23 9.10.10.0/24 9.10.13.0/24 9.10.14.0/23 9.10.16.0/20 9.10.32.0/19 9.10.64.0/18 9.10.128.0/17 9.11.0.0/16 9.12.0.0/14 9.16.0.0/12 9.32.0.0/11 9.64.0.0/10 9.128.0.0/9 10.0.0.0/7 12.0.0.0/6 16.0.0.0/4 32.0.0.0/3 64.0.0.0/3 96.0.0.0/6 100.0.0.0/8 101.0.0.0/10 101.64.0.0/11 101.96.0.0/12 101.112.0.0/13 101.124.0.0/14 101.128.0.0/9 102.0.0.0/7 104.0.0.0/5 112.0.0.0/4 128.0.0.0/0 需要其他编程语言的话,参照这个改一下就ok了 代码: https://gist.github.com/LazyZhu/3f15cf7ab3777b54d21c |
19
ericFork 2014-12-07 19:24:27 +08:00
难道需求是取 逆·chnroutes?
|
22
ovear OP |
23
ovear OP @LazyZhu 大神。。报错了 肿么办
awk: -:2: for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x]) awk: -:2: ^ syntax error awk: -:2: warning: escape sequence `\.' treated as plain `.' awk: -:2: for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x]) awk: -:2: ^ syntax error awk: -:2: for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x]) awk: -:2: ^ syntax error awk: -:9: for(;x<3;ret=and(ip,255)"."ret,ip=rshift(ip,8),x++); awk: -:9: ^ syntax error awk: -:9: for(;x<3;ret=and(ip,255)"."ret,ip=rshift(ip,8),x++); awk: -:9: ^ syntax error |