| #include <u.h> |
| #include <libc.h> |
| #include <ip.h> |
| |
| uchar classmask[4][16] = { |
| 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0x00,0x00,0x00, |
| 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0x00,0x00,0x00, |
| 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0x00,0x00, |
| 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0x00, |
| }; |
| |
| uchar* |
| defmask(uchar *ip) |
| { |
| return classmask[ip[IPv4off]>>6]; |
| } |
| |
| void |
| maskip(uchar *from, uchar *mask, uchar *to) |
| { |
| int i; |
| |
| for(i = 0; i < IPaddrlen; i++) |
| to[i] = from[i] & mask[i]; |
| } |