1 static char *IGNORES[] = {
2 "10.0.99.", // ganetinet
4 "152.228.204.144", // VM via nardoo
20 "2001:41d0:2:1f68:" // (via) nash
21 "2001:41d0:2:d06e:" // (via) newtonia
22 "2001:41d0:8:732b:" // (via) napier
23 "2001:41d0:a:511b:" // (via) nardoo
24 "37.187.145.27", // nardoo
25 "37.59.56.43", // napier
26 "46.105.97.110", // newtonia
27 "5.135.82.176", // VM via napier
43 "5.196.38.16", // VM via newtonia
59 "54.36.142.176", // VM via nash
75 "94.23.30.104", // nash
79 // Return the size of the IGN table
80 static int IGN_count() {
82 while ( IGNORES[ i ] != 0 ) {
89 * Compare an IP against an ignore entry of width w.
90 * return 0 if ip starts with ign, <0 if ip < ign, and >0 if ip > ign
92 static int IGN_cmp(const void *ipx, const void *ignx) {
93 char *ip = (char *) ipx;
94 char *ign = *(char**) ignx;
99 int c = *(ip++) - *(ign++);
107 static int ignored(char *ip) {
108 static int IGN_size = -1;
109 if ( IGN_size == -1 ) {
110 IGN_size = IGN_count();
112 return bsearch( ip, IGNORES, IGN_size, sizeof( char* ), IGN_cmp )? 1 : 0;