def METHOD_NAME(
    self,
    host: str,
    _: PingScanData,
    port_scan_data: Dict[int, PortScanData],
    options: Dict,
) -> FingerprintData:
    services = []
    http_ports = set(options.get("http_ports", []))
    ports_to_fingerprint = _get_open_http_ports(http_ports, port_scan_data)
    timestamp = time.time()
    for port in ports_to_fingerprint:
        service = self._query_potential_http_server(host, port)
        if service:
            services.append(
                DiscoveredService(
                    protocol=NetworkProtocol.TCP, port=NetworkPort(port), service=service
                )
            )
    # If there were no ports worth fingerprinting (i.e. no actual fingerprinting action took
    # place), then we don't want to publish an event.
    if len(ports_to_fingerprint) > 0:
        self._publish_fingerprinting_event(host, timestamp, services)
    return FingerprintData(os_type=None, os_version=None, services=services)