1 #include <u.h> 2 #include <libc.h> 3 #include <bio.h> 4 #include <ndb.h> 5 #include <ip.h> 6 7 /* 8 * search the database for matches 9 */ 10 11 void 12 usage(void) 13 { 14 fprint(2, "usage: ipquery [-f ndb-root] attr value rattribute\n"); 15 exits("usage"); 16 } 17 18 void 19 search(Ndb *db, char *attr, char *val, char **rattr, int nrattr) 20 { 21 Ndbtuple *t, *tt; 22 23 tt = ndbipinfo(db, attr, val, rattr, nrattr); 24 for(t = tt; t; t = t->entry) 25 print("%s=%s ", t->attr, t->val); 26 print("\n"); 27 ndbfree(tt); 28 } 29 30 void 31 main(int argc, char **argv) 32 { 33 Ndb *db; 34 char *dbfile = 0; 35 36 ARGBEGIN{ 37 case 'f': 38 dbfile = ARGF(); 39 break; 40 default: 41 usage(); 42 break; 43 }ARGEND; 44 45 if(argc < 3) 46 usage(); 47 48 db = ndbopen(dbfile); 49 if(db == 0){ 50 fprint(2, "no db files\n"); 51 exits("no db"); 52 } 53 search(db, argv[0], argv[1], argv+2, argc-2); 54 ndbclose(db); 55 56 exits(0); 57 } 58