Esempio n. 1
0
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)
Esempio n. 2
0
 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
Esempio n. 3
0
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"]]