7 #include <sys/socket.h>
12 #include <sys/types.h>
13 #include <netinet/in.h>
14 #include <netinet/tcp.h>
15 #include <netinet/in_systm.h>
16 #include <netinet/ip.h>
18 typedef unsigned char uchar;
20 /****************************************************************************
21 return the number of bits that match between two 4 character buffers
22 ***************************************************************************/
23 int matching_quad_bits(uchar *p1, uchar *p2)
27 if (p1[i] != p2[i]) break;
34 if ((p1[i] & (1<<(7-j))) != (p2[i] & (1<<(7-j)))) break;
42 int main(int argc, char *argv[])
44 struct in_addr ip1, ip2;
47 printf("Usage: matching_bits IP1 IP2\n");
51 inet_aton(argv[1], &ip1);
52 inet_aton(argv[2], &ip2);
54 printf("%d\n", matching_quad_bits((uchar *)&ip1.s_addr, (uchar *)&ip2.s_addr));