def parse_ip_data_and_ingest_into_sentinel(self, ip_data, indicator_value):
        """
        To parse the IP address data and divide information into different tables.

        Args:
            ip_data (dict): A dictionary containing the ip address data.

        Raises:
            TeamCymruScoutException: If an error occurs during the parsing process.
        """
        __method_name = inspect.currentframe().f_code.co_name
        try:
            applogger.debug(
                "{}(method={}) Parsing and Ingesting IP data from Details API into different tables for IP: {}.".format(
                    self.logs_starts_with, __method_name, indicator_value
                )
            )
            communications = self.process_ip_data(
                ip_data,
                "communications",
                "peers",
                "Communications",
                indicator_value=indicator_value,
            )
            pdns = self.process_ip_data(ip_data, "pdns", "pdns", "PDNS", indicator_value=indicator_value)
            fingerprints = self.process_ip_data(
                ip_data,
                "fingerprints",
                "fingerprints",
                "Fingerprints",
                indicator_value=indicator_value,
            )
            openports = self.process_ip_data(
                ip_data,
                "open_ports",
                "open_ports",
                "OpenPorts",
                indicator_value=indicator_value,
            )
            x509 = self.process_ip_data(ip_data, "x509", "x509", "x509", indicator_value=indicator_value)

            summary_details = ip_data.get("summary", {})
            summary_tags = summary_details.get("tags", [])
            if summary_details:
                ip_data.pop("summary")
            ip_data.pop("request_id")
            ip_data.pop("sections")
            ip_data["communications"] = communications
            ip_data["pdns"] = pdns
            ip_data["fingerprints"] = fingerprints
            ip_data["open_ports"] = openports
            ip_data["x509"] = x509
            self.rest_helper_obj.send_data_to_sentinel(
                [ip_data],
                "{}_{}".format(consts.IP_TABLE_NAME, "Details"),
                consts.AZURE_DATA_COLLECTION_RULE_ID_MAIN_TABLES,
                indicator_value=indicator_value,
            )
            if summary_details:
                summary_pdns = self.process_ip_data(
                    summary_details,
                    "pdns",
                    "top_pdns",
                    "Summary_PDNS",
                    indicator_value=indicator_value,
                )
                summary_openports = self.process_ip_data(
                    summary_details,
                    "open_ports",
                    "top_open_ports",
                    "Summary_OpenPorts",
                    indicator_value=indicator_value,
                )
                summary_certs = self.process_ip_data(
                    summary_details,
                    "certs",
                    "top_certs",
                    "Summary_Certs",
                    indicator_value=indicator_value,
                )
                summary_fingerprints = self.process_ip_data(
                    summary_details,
                    "fingerprints",
                    "top_fingerprints",
                    "Summary_Fingerprints",
                    indicator_value=indicator_value,
                )
                if summary_tags:
                    summary_tags_ids, summary_tags_names = self.utility_obj.extract_ids_and_names_of_tags(summary_tags)
                    summary_details["tags_id"] = summary_tags_ids
                    summary_details["tags_name"] = summary_tags_names
                summary_details["pdns"] = summary_pdns
                summary_details["open_ports"] = summary_openports
                summary_details["certs"] = summary_certs
                summary_details["fingerprints"] = summary_fingerprints
                self.rest_helper_obj.send_data_to_sentinel(
                    [summary_details],
                    "{}_{}".format(consts.IP_TABLE_NAME, "Summary_Details"),
                    consts.AZURE_DATA_COLLECTION_RULE_ID_SUB_TABLES,
                    indicator_value=indicator_value,
                )
        except Exception as err:
            applogger.error(self.error_logs.format(self.logs_starts_with, __method_name, err))
            raise TeamCymruScoutException()

        To parse the IP address data and divide information into different tables.

        Args:
            ip_data (dict): A dictionary containing the ip address data.

        Raises:
            TeamCymruScoutException: If an error occurs during the parsing process.
        
Solutions/Team Cymru Scout/Data Connectors/TeamCymruScout/IPDataCollector/ip_collector.py