public IEnumerable <PortScanResult> PerformPortScan(uint address, out int hops)
        {
            var node = MapAddressToNode(address, out hops);

            if (node is DeviceNode device)
            {
                // local area network! this is ideal.
                return(_simulation.GetHackables(device.Device).Select(x => new PortScanResult(x, true)));
            }
            else if (node is NetworkNode network)
            {
                // Generate port maps if that hasn't happened yet.
                _simulation.GeneratePortMappings(network.Network);

                // Public network. These need to be hacked into first.
                return(_simulation.GetMappedHackables(network.Network).Select(x => new PortScanResult(x, false)));
            }
            else
            {
                return(null);
            }
        }