| #include <u.h> |
| #include <libc.h> |
| #include <bio.h> |
| #include <ndb.h> |
| #include <ip.h> |
| |
| /* |
| * search the database for matches |
| */ |
| |
| void |
| usage(void) |
| { |
| fprint(2, "usage: ipquery attr value rattribute\n"); |
| exits("usage"); |
| } |
| |
| void |
| search(Ndb *db, char *attr, char *val, char **rattr, int nrattr) |
| { |
| Ndbtuple *t; |
| |
| t = ndbipinfo(db, attr, val, rattr, nrattr); |
| for(; t; t = t->entry) |
| print("%s=%s ", t->attr, t->val); |
| print("\n"); |
| ndbfree(t); |
| } |
| |
| void |
| main(int argc, char **argv) |
| { |
| Ndb *db; |
| char *dbfile = 0; |
| |
| ARGBEGIN{ |
| case 'f': |
| dbfile = ARGF(); |
| break; |
| }ARGEND; |
| |
| if(argc < 3) |
| usage(); |
| |
| db = ndbopen(dbfile); |
| if(db == 0){ |
| fprint(2, "no db files\n"); |
| exits("no db"); |
| } |
| search(db, argv[0], argv[1], argv+2, argc-2); |
| ndbclose(db); |
| |
| exits(0); |
| } |