diff --git a/libnmap/objects/host.py b/libnmap/objects/host.py index 1ae0669..ffa3596 100644 --- a/libnmap/objects/host.py +++ b/libnmap/objects/host.py @@ -40,6 +40,7 @@ def __init__(self, starttime='', endtime='', address=None, status=None, self._ipv4_addr = None self._ipv6_addr = None self._mac_addr = None + self._vendor = None for addr in address: if addr['addrtype'] == "ipv4": self._ipv4_addr = addr['addr'] @@ -47,6 +48,8 @@ def __init__(self, starttime='', endtime='', address=None, status=None, self._ipv6_addr = addr['addr'] elif addr['addrtype'] == 'mac': self._mac_addr = addr['addr'] + if 'vendor' in addr: + self._vendor = addr['vendor'] self._main_address = self._ipv4_addr or self._ipv6_addr or '' self._address = address @@ -147,8 +150,10 @@ def address(self, addrdict): self._ipv4_addr = addrdict['addr'] elif addrdict['addrtype'] == 'ipv6': self._ipv6_addr = addrdict['addr'] - if addrdict['addrtype'] == 'mac': + elif addrdict['addrtype'] == 'mac': self._mac_addr = addrdict['addr'] + if 'vendor' in addrdict: + self._vendor = addrdict['vendor'] self._main_address = self._ipv4_addr or self._ipv6_addr or '' self._address = addrdict @@ -171,6 +176,15 @@ def mac(self): """ return self._mac_addr or '' + @property + def vendor(self): + """ + Accessor for the vendor attribute of the scanned host + + :return: string (vendor) of empty string if no vendor defined + """ + return self._vendor or '' + @property def ipv6(self): """