Source code for beagle.nodes.ip_address

from collections import defaultdict
from typing import DefaultDict, List, Optional, TYPE_CHECKING

from beagle.nodes.node import Node
from beagle.edges import ConnectedTo, DNSQueryFor, HTTPRequestTo

if TYPE_CHECKING:
    from beagle.nodes import URI, Domain  # noqa


[docs]class IPAddress(Node): __name__ = "IP Address" __color__ = "#87CEEB" ip_address: Optional[str] mac: Optional[str] key_fields: List[str] = ["ip_address"] connected_to: DefaultDict["IPAddress", ConnectedTo] http_request_to: DefaultDict["URI", HTTPRequestTo] dns_query_for: DefaultDict["Domain", DNSQueryFor] # List of DNS Lookups def __init__(self, ip_address: str = None, mac: str = None): self.ip_address = ip_address self.mac = mac self.connected_to = defaultdict(ConnectedTo) self.http_request_to = defaultdict(HTTPRequestTo) self.dns_query_for = defaultdict(DNSQueryFor) @property def _display(self) -> str: return self.ip_address or super()._display