25 lines
622 B
C
25 lines
622 B
C
#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];
|
|
}
|