def host(args): db = get_db(args) ipaddr = args.ipaddress[0] hostinfo = [] if args.mac: addrinfo = db.macaddr.find_one({"address": ipaddr}) if addrinfo is not None: hostinfo = [addrinf["host"]] else: addrinfo = db.v4addr.find_one({"address": ipaddr}) if addrinfo is not None: hostinfo = addrinfo["hosts"] hostinfo = [deref(db, h) for h in hostinfo] if args.snmp: hostinfo = [db.snmp.find_one({"ident": h["ident"]}) for h in hostinfo] elif args.login: hostinfo = [db.login.find_one({"ident": h["ident"]}) for h in hostinfo] if args.json: for h in hostinfo: h["_id"] = str(h["_id"]) print json.dumps(hostinfo) elif args.pprint: for host in hostinfo: if host is not None: pprint(host) else: for host in hostinfo: if host is not None: hprint(db, host)
def get_host(self, macaddr, templ="%s"): upcase = macaddr.upper() if macaddr != upcase: return redirect(self.mountpoint + templ % upcase) addrinfo = self.db.macaddr.find_one({"address": macaddr}, {"host": 1}) if addrinfo is None: raise NotFound(macaddr) hostinfo = deref(self.db, addrinfo["host"]) del hostinfo["_id"] return hostinfo
def gethostbyv4addr(db, ipaddr): if not isinstance(ipaddr, str): ipaddr = str(ipaddr) addrinfo = db.v4addr.find_one({"address": ipaddr}, {"hosts": 1}) if addrinfo is not None: return [deref(db, h) for h in addrinfo["hosts"]]