---
title: Detecting blacklisted IP addresses through IOTA API
description: Learn how to detect blacklisted IP addresses using IOTA's RESTful API on your network with Python scripting. Enhance your network security with automated monitoring.
image: https://insights.profitap.com/hubfs/Detecting-Blacklisted_v2.jpg
---

[![Profitap](https://insights.profitap.com/hubfs/profitap-logo-white-rev1.png "Profitap")](https://www.profitap.com)

- [Solutions](https://www.profitap.com/solutions/)
- Products
- Resources
- Company
- <https://twitter.com/Profitap>
- <https://www.youtube.com/c/Profitap>
- <https://www.facebook.com/Profitap>
- <https://www.linkedin.com/company/profitap-international>

# Profitap Blog

### Recent Posts

### Categories

- [Network Monitoring (75)](https://insights.profitap.com/topic/network-monitoring)
- [Insights (38)](https://insights.profitap.com/topic/insights)
- [IOTA (32)](https://insights.profitap.com/topic/iota)
- [Copper TAPs (31)](https://insights.profitap.com/topic/copper-taps)
- [ProfiShark (24)](https://insights.profitap.com/topic/profishark)
- [Fiber TAPs (23)](https://insights.profitap.com/topic/fiber-taps)
- [Data Center (17)](https://insights.profitap.com/topic/data-center)
- [Network Packet Brokers (14)](https://insights.profitap.com/topic/network-packet-brokers)
- [Network Visibility and Cybersecurity (14)](https://insights.profitap.com/topic/network-visibility-and-cybersecurity)
- [Network Security (13)](https://insights.profitap.com/topic/network-security)
- [News (13)](https://insights.profitap.com/topic/news)
- [Product Update (11)](https://insights.profitap.com/topic/product-update)
- [Field Service (10)](https://insights.profitap.com/topic/field-service)
- [Case Study (3)](https://insights.profitap.com/topic/case-study)
- [OIDA (3)](https://insights.profitap.com/topic/oida)
- [Events (2)](https://insights.profitap.com/topic/events)
- [Heroes of Packet Analysis (2)](https://insights.profitap.com/topic/heroes-of-packet-analysis)
- [Solutions for Government and Defense (2)](https://insights.profitap.com/topic/solutions-for-government-and-defense)
- [Power and Utilities Solutions (1)](https://insights.profitap.com/topic/power-and-utilities-solutions)
- [Solutions for Logistics (1)](https://insights.profitap.com/topic/solutions-for-logistics)
- [cloud (1)](https://insights.profitap.com/topic/cloud)

see all

### Archives

- [July 2026 (1)](https://insights.profitap.com/archive/2026/07)
- [June 2026 (1)](https://insights.profitap.com/archive/2026/06)
- [May 2026 (3)](https://insights.profitap.com/archive/2026/05)
- [April 2026 (2)](https://insights.profitap.com/archive/2026/04)
- [March 2026 (3)](https://insights.profitap.com/archive/2026/03)
- [February 2026 (3)](https://insights.profitap.com/archive/2026/02)
- [January 2026 (3)](https://insights.profitap.com/archive/2026/01)
- [November 2025 (1)](https://insights.profitap.com/archive/2025/11)
- [October 2025 (4)](https://insights.profitap.com/archive/2025/10)
- [September 2025 (1)](https://insights.profitap.com/archive/2025/09)
- [August 2025 (2)](https://insights.profitap.com/archive/2025/08)
- [July 2025 (3)](https://insights.profitap.com/archive/2025/07)
- [May 2025 (1)](https://insights.profitap.com/archive/2025/05)
- [March 2025 (2)](https://insights.profitap.com/archive/2025/03)
- [February 2025 (3)](https://insights.profitap.com/archive/2025/02)
- [January 2025 (2)](https://insights.profitap.com/archive/2025/01)
- [December 2024 (1)](https://insights.profitap.com/archive/2024/12)
- [November 2024 (2)](https://insights.profitap.com/archive/2024/11)
- [October 2024 (1)](https://insights.profitap.com/archive/2024/10)
- [September 2024 (3)](https://insights.profitap.com/archive/2024/09)
- [August 2024 (8)](https://insights.profitap.com/archive/2024/08)
- [July 2024 (7)](https://insights.profitap.com/archive/2024/07)
- [June 2024 (1)](https://insights.profitap.com/archive/2024/06)
- [May 2024 (6)](https://insights.profitap.com/archive/2024/05)
- [April 2024 (1)](https://insights.profitap.com/archive/2024/04)
- [March 2024 (3)](https://insights.profitap.com/archive/2024/03)
- [February 2024 (2)](https://insights.profitap.com/archive/2024/02)
- [January 2024 (1)](https://insights.profitap.com/archive/2024/01)
- [December 2023 (2)](https://insights.profitap.com/archive/2023/12)
- [November 2023 (1)](https://insights.profitap.com/archive/2023/11)
- [July 2023 (1)](https://insights.profitap.com/archive/2023/07)
- [June 2023 (1)](https://insights.profitap.com/archive/2023/06)
- [April 2023 (1)](https://insights.profitap.com/archive/2023/04)
- [February 2023 (1)](https://insights.profitap.com/archive/2023/02)
- [January 2023 (1)](https://insights.profitap.com/archive/2023/01)
- [December 2022 (1)](https://insights.profitap.com/archive/2022/12)
- [October 2022 (1)](https://insights.profitap.com/archive/2022/10)
- [April 2022 (1)](https://insights.profitap.com/archive/2022/04)
- [March 2022 (1)](https://insights.profitap.com/archive/2022/03)
- [February 2022 (2)](https://insights.profitap.com/archive/2022/02)
- [January 2022 (1)](https://insights.profitap.com/archive/2022/01)
- [December 2021 (2)](https://insights.profitap.com/archive/2021/12)
- [October 2021 (2)](https://insights.profitap.com/archive/2021/10)
- [September 2021 (1)](https://insights.profitap.com/archive/2021/09)
- [August 2021 (1)](https://insights.profitap.com/archive/2021/08)
- [June 2021 (1)](https://insights.profitap.com/archive/2021/06)
- [May 2021 (1)](https://insights.profitap.com/archive/2021/05)
- [March 2021 (2)](https://insights.profitap.com/archive/2021/03)
- [February 2021 (1)](https://insights.profitap.com/archive/2021/02)
- [January 2021 (2)](https://insights.profitap.com/archive/2021/01)
- [November 2020 (1)](https://insights.profitap.com/archive/2020/11)
- [September 2020 (1)](https://insights.profitap.com/archive/2020/09)
- [August 2020 (1)](https://insights.profitap.com/archive/2020/08)
- [July 2020 (2)](https://insights.profitap.com/archive/2020/07)
- [June 2020 (2)](https://insights.profitap.com/archive/2020/06)
- [April 2020 (2)](https://insights.profitap.com/archive/2020/04)
- [March 2020 (2)](https://insights.profitap.com/archive/2020/03)
- [February 2020 (4)](https://insights.profitap.com/archive/2020/02)
- [September 2019 (1)](https://insights.profitap.com/archive/2019/09)
- [August 2019 (1)](https://insights.profitap.com/archive/2019/08)
- [May 2019 (2)](https://insights.profitap.com/archive/2019/05)
- [April 2019 (1)](https://insights.profitap.com/archive/2019/04)
- [March 2019 (1)](https://insights.profitap.com/archive/2019/03)
- [February 2019 (1)](https://insights.profitap.com/archive/2019/02)
- [December 2018 (2)](https://insights.profitap.com/archive/2018/12)
- [October 2018 (2)](https://insights.profitap.com/archive/2018/10)
- [August 2018 (1)](https://insights.profitap.com/archive/2018/08)
- [July 2018 (2)](https://insights.profitap.com/archive/2018/07)
- [June 2018 (1)](https://insights.profitap.com/archive/2018/06)
- [May 2018 (4)](https://insights.profitap.com/archive/2018/05)
- [April 2018 (1)](https://insights.profitap.com/archive/2018/04)
- [March 2018 (2)](https://insights.profitap.com/archive/2018/03)
- [February 2018 (1)](https://insights.profitap.com/archive/2018/02)
- [January 2018 (1)](https://insights.profitap.com/archive/2018/01)
- [December 2017 (1)](https://insights.profitap.com/archive/2017/12)
- [November 2017 (2)](https://insights.profitap.com/archive/2017/11)
- [October 2017 (1)](https://insights.profitap.com/archive/2017/10)
- [July 2017 (1)](https://insights.profitap.com/archive/2017/07)
- [May 2017 (2)](https://insights.profitap.com/archive/2017/05)
- [February 2016 (1)](https://insights.profitap.com/archive/2016/02)
- [December 2015 (2)](https://insights.profitap.com/archive/2015/12)
- [June 2015 (2)](https://insights.profitap.com/archive/2015/06)
- [May 2015 (3)](https://insights.profitap.com/archive/2015/05)

see all

### Stay up to date

[Follow @Profitap](https://twitter.com/Profitap)

[Return to Blog](https://insights.profitap.com/)

# Detecting blacklisted IP addresses through IOTA API

- [Tweet](https://twitter.com/share)

# Introduction<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#introduction>

IOTA devices provide a RESTful API which allows direct access to the data stored on the device. This can be useful for integrating into various scenarios. In this case, to filter for blacklisted IPs in the currently captured content. Use cases may be to analyze if certain internal IPs are not propagated beyond a specific access level, or if certain devices are being accessed from an area where they should not be accessed from.

## Prerequisites<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#prerequisites>

- Basic knowledge of Python programming.
- Access to an IOTA device from Profitap.

## Setting up the IOTA device<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#setting_up_the_iota_device>

 

### 1. Connect the IOTA device<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#connect_the_iota_device>

- Connect the IOTA device to the network segment you want to monitor.
- Identifying the correct segment is critical here. Ensure, with a visual inspection of the traffic on the IOTA device, that the correct segment is being used during capture.

### 2. Access the IOTA web interface<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#access_the_iota_web_interface>

- Open a web browser and enter the IP address of the IOTA device.
  
    - Example: https://<iota\_device\_ip\_address> (Replace with the actual IP address of your IOTA device).
- Log in using the correct credentials. This script uses a username/password combination that should allow it to see the necessary information.

### 3. Configure capture settings<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#configure_capture_settings>

- Set up the network interfaces for packet capture.
  
    - Choose the interfaces you want to monitor from the device's web interface.
- Configure filters if needed to focus on specific traffic types.
  
    - You can set filters to capture only specific types of traffic, such as HTTP or FTP, depending on your needs.

# Using the IOTA database query engine<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#using_the_iota_database_query_engine>

The query engine allows any user to interact with the IOTA device in a machine-readable fashion to query the metadata database. This is done using a RESTful API access with a username/password combination.

![](https://kb.profitap.com/_media/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api-1.png?w=1200&tok=d87d54)

To ensure that sensitive information is not propagated and that no information on the device can be manipulated by the user, it is recommended to create a new special user. In this case, a user has been created with the username “apitest”. Note that this user has been automatically added to the organization as a “Viewer”. Nothing else needs to be configured, and this role will prevent any miscommunication by only allowing read-only access.

![](https://kb.profitap.com/_media/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api-2.png?w=1200&tok=07f7e1)

## Security considerations<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#security_considerations>

The solution used here is for creating a dedicated user/password combination for using the script. As it is recommended to protect direct access to the IOTA from any outside interference and to use a HTTPS connection, this is fine. However, please note that it is a good practice to ensure that the user/password combination is not used in any other context and the user has only a Viewer role (which a new user has by default).

## Python script for blacklisted IP detection<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#python_script_for_blacklisted_ip_detection>

**The script:**

[iota\_ip\_blacklist\_check.py](https://kb.profitap.com/_export/code/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api?codeblock=0)

```
import requestsimport reimport timeimport urllib.parseimport jsonimport argparsefrom urllib3.exceptions import InsecureRequestWarning def main():    # CLI options    parser = argparse.ArgumentParser(description='Compare IP blacklist files against IOTA metadata. Blacklist files must contain a list of single IPv4/IPv6 addresses or IP subnet in CIDR notation.')    required_args = parser.add_argument_group('required')     required_args.add_argument('-d', '--device_ip', help='Device IP address')    required_args.add_argument('-i', '--infile', nargs='+', help = 'Blacklist file(s)')    parser.add_argument('-u', '--device_username', default='admin', help='Device IP username (default: admin)')    parser.add_argument('-p', '--device_password', default='admin', help='Device IP password (default: admin)')    parser.add_argument('-l', '--query_time_window_s', type=int, default=600, help='Number of seconds from the current time to query IOTA metadata (default: 600)')     args = parser.parse_args()    if args.device_ip:        iota_ip_address = args.device_ip    if args.device_username:        iota_username = args.device_username    if args.device_password:        iota_password = args.device_password    if args.query_time_window_s:        query_time_window_s = args.query_time_window_s    if args.infile:        blacklist_files = args.infile     query_time_window_end = int(time.time())    query_time_window_start = query_time_window_end - query_time_window_s     results = {}     session = requests.Session()    session.auth = (iota_username, iota_password)     # Suppress warnings from urllib3    requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)     # Open blacklist files, iterate over them    for blacklist_file in blacklist_files:        count_fail = 0        print(f' - {blacklist_file}')        with open(blacklist_file) as f:            for line in f:                 # Skip comments or empty lines                if re.match(r"^[;#\s]", line):                    continue                 # Current IP address or subnet                ip = line.split()[0]                print(f'   - {ip:45}', end='')                 # Handle CIDR subnet query                if re.match(r"^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2})|(?:[0-9a-fA-F\:]{2,39}/[0-9]{1,2}))$", ip):                    query = urllib.parse.quote(f"SELECT COUNT(DISTINCT FLOW_ID) AS matching_flows FROM flows.base WHERE (isIPAddressInRange(IP_SRC, '{ip}') OR isIPAddressInRange(IP_DST, '{ip}')) AND DATE_PKT_MS_FIRST >= toDateTime64({query_time_window_start}, 3) AND DATE_PKT_MS_FIRST <= toDateTime64({query_time_window_end}, 3) FORMAT JSON", safe='()*')                    response = session.get('https://'+iota_ip_address+'/api/datasources/proxy/3/?query='+query, verify=False)                    matching_flows = json.loads(response.content)['data'][0]['matching_flows']                     if matching_flows == "0":                        print('Ok')                    else:                        count_fail += 1                        print(f'Match (flows: {matching_flows})')                 # Handle single IP address query                elif re.match(r"^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:[0-9a-fA-F\:]{2,39}))$", ip):                    query = urllib.parse.quote(f"SELECT COUNT(DISTINCT FLOW_ID) AS matching_flows FROM flows.base WHERE (IP_SRC = '{ip}' OR IP_DST = '{ip}') AND DATE_PKT_MS_FIRST >= toDateTime64({query_time_window_start}, 3) AND DATE_PKT_MS_FIRST <= toDateTime64({query_time_window_end}, 3) FORMAT JSON", safe='()*')                    response = session.get('https://'+iota_ip_address+'/api/datasources/proxy/3/?query='+query, verify=False)                    matching_flows = json.loads(response.content)['data'][0]['matching_flows']                     if matching_flows == "0":                        print('Ok')                    else:                        count_fail += 1                        print(f'Match (flows: {matching_flows})')                 # Some unknown case                else:                    print('Unhandled case')         # Record results after completing file        results[blacklist_file] = count_fail     # Print results    print('\nResults\n===')    for file in results:        print(f' - {file:47}{str(results[file])} matches') if __name__ == '__main__':    main()
```

### Step-by-step script explanation<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#step-by-step_script_explanation>

#### **1. Import necessary libraries**

```
import requests
```

#### **2. Set up configuration**

```
    # CLI options    parser = argparse.ArgumentParser(description='Compare IP blacklist files against IOTA metadata. Blacklist files must contain a list of single IPv4/IPv6 addresses or IP subnet in CIDR notation.')    required_args = parser.add_argument_group('required')     required_args.add_argument('-d', '--device_ip', help='Device IP address')    required_args.add_argument('-i', '--infile', nargs='+', help = 'Blacklist file(s)')    parser.add_argument('-u', '--device_username', default='apitest', help='Device IP username (default: apitest)')    parser.add_argument('-p', '--device_password', default='apitest', help='Device IP password (default: apitest)')    parser.add_argument('-l', '--query_time_window_s', type=int, default=600, help='Number of seconds from the current time to query IOTA metadata (default: 600)')
```

- `-d / –device_ip`  
  The IP of the IOTA device.
- `-i / –infile`  
  A text file with IP addresses to look for. CIDR subnet queries for address ranges may also be provided. The file may contain comments prefixed with either a ; or #. Any empty line or lines started with spaces will be omitted. By providing this parameter multiple times, multiple input files may be handed over to this script.
- `-u / –device_username`  
  The username defined in the step above.
- `-p / –device_password`  
  The password defined in the step above.
- `-l / –query_time_window_s`  
  How much time in the past should the query occur. The default is 600 seconds, which corresponds to 10 minutes.

**The input file:**

As an example, here is an input file, which will search for a specific subnet as well as all the IP addresses for the internal DNS server.

[infile.txt](https://kb.profitap.com/_export/code/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api?codeblock=3)

```
# IP Address of DNS server192.168.1.250# Host range for internal testing10.40.0.0/24
```

#### **3. Main logic to detect blacklisted IPs**

The main logic opens the blacklist file, parses it step by step, and queries the internal database for either a corresponding subnet query or a direct IP address query.

```
query = urllib.parse.quote(f"SELECT COUNT(DISTINCT FLOW_ID) AS matching_flows FROM flows.base WHERE (isIPAddressInRange(IP_SRC, '{ip}') OR isIPAddressInRange(IP_DST, '{ip}')) AND DATE_PKT_MS_FIRST >= toDateTime64({query_time_window_start}, 3) AND DATE_PKT_MS_FIRST <= toDateTime64({query_time_window_end}, 3) FORMAT JSON", safe='()*')                    response = session.get('https://'+iota_ip_address+'/api/datasources/proxy/3/?query='+query, verify=False)                    matching_flows = json.loads(response.content)['data'][0]['matching_flows']
```

 

First, the query is set up. In this case, we only need to look for the number of entries found, which is why we are performing a COUNT operation. The database is queried in SQL format.

After the query has been created, a session is set up, which will use an HTTP GET operation to query the information. The result is presented as JSON data, and the first entry is being read.

For each IP address found, the number of matching entries is printed, and for each file, the total number of matching entries is printed.

### Running the script<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#running_the_script>

It is recommended that the script is run in a Python environment. This can be done with the following commands:

```
python3 -m venv ./Development/iotasource ./Development/iota/bin/activatepython3 -m pip install argparse requests
```

This will create a Python3 venv environment (see **[here](https://docs.python.org/3/library/venv.html)** for more information) and install the required libraries that are not present in a default environment.

![](https://kb.profitap.com/_media/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api-3.png?w=1000&tok=c6b03f)

Then, assuming the Python script, as well as the infile file, is in the current directory, the following will run the script:

![](https://kb.profitap.com/_media/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api-4.png?w=800&tok=bb5834)

In this case, the IOTA was positioned to capture on the outbound WAN connection. In the last 10 minutes, no outbound DNS query was done from the internal DNS server, but 4 times, the internal test network sent data over the WAN connection.

In this example, the script is being used as a whitelist test, but it can easily be configured as a blacklist test as well.

## Conclusion<https://kb.profitap.com/iota/typical-deployment-scenarios/detecting-blacklisted-ip-addresses-through-iota-api#conclusion>

By following this guide, you can effectively utilize the IOTA device and its REST API to monitor network traffic and detect blacklisted IP addresses using Python. This approach provides a powerful tool for maintaining network security in an automated monitoring environment.

[![CTA All IOTA Dashboards_v5](https://no-cache.hubspot.com/cta/default/2954816/interactive-167361556522.png)](https://insights.profitap.com/hs/cta/wi/redirect?encryptedPayload=AVxigLJMU3LTla5nl7Nwn8Faq8GtJJxcwh93maS4nYlgMEDlfFqPN71a04I%2FcvnHsmXBNT2kMhEpJ19i90b3Lf9woXzFXyX8AIZE%2BFAf6x9BFLF9xN0dY17SdVGUjYto04T8x0iwFDSLXlajsfhaNhmVBfv3pHaboGGDymUG7HpxpQ3K&webInteractiveContentId=167361556522&portalId=2954816)

- [Tweet](https://twitter.com/share)

by [Profitap](https://insights.profitap.com/author/profitap) |  May 22, 2024  | [Network Monitoring](https://insights.profitap.com/topic/network-monitoring)

[**Packet Capture & Analysis**](https://www.profitap.com/iota/)

- [IOTA 1G](https://www.profitap.com/iota-1g/)
- [IOTA 1G+](https://www.profitap.com/iota-1g-plus/)
- [IOTA 10G](https://www.profitap.com/iota-10g/)
- [IOTA 10G+](https://www.profitap.com/iota-10g-plus/)
- [IOTA 10 CORE](https://www.profitap.com/iota-10-core/)
- [IOTA 10 CORE+](https://www.profitap.com/iota-10-core-plus/)
- [IOTA 100 CORE](https://www.profitap.com/iota-100-core/)

 

[**ProfiShark**](https://www.profitap.com/profishark-network-taps/)

- [ProfiShark 100M](https://www.profitap.com/profishark-100m/)
- [ProfiShark 1G](https://www.profitap.com/profishark-1g/)
- [ProfiShark 1G+](https://www.profitap.com/profishark-1g-plus/)
- [ProfiShark 10G](https://www.profitap.com/profishark-10g/)
- [ProfiShark 10G+](https://www.profitap.com/profishark-10g-plus/)

 

[**Accessories**](https://www.profitap.com/accessories/)

- [Transceivers](https://www.profitap.com/transceivers/)
- [Data Diodes](https://www.profitap.com/data-diodes/)
- [Connectivity](https://www.profitap.com/accessories/#connectivity/)

<https://twitter.com/Profitap>

<https://www.youtube.com/c/Profitap>

<https://www.facebook.com/Profitap>

<https://www.linkedin.com/company/profitap-international>

[**Network Traffic Aggregators**](https://www.profitap.com/network-traffic-aggregators/)

- [XX-720G](https://www.profitap.com/xx-720g-network-packet-broker/)
- [XX-1800G](https://www.profitap.com/xx-1800g-network-packet-broker/)
- [XX-3200G](https://www.profitap.com/xx-3200g-network-packet-broker/)

 

[**Network Packet Brokers**](https://www.profitap.com/network-packet-brokers/)

- [X3-Series](https://www.profitap.com/x3-series-advanced-network-packet-brokers/)
- [X2-2010G](https://www.profitap.com/x2-2010g-network-packet-broker/)
- [X2-3200G](https://www.profitap.com/x2-3200g-network-packet-broker/)
- [X2-6400G](https://www.profitap.com/x2-6400g-network-packet-broker/)
- [X2-12800G](https://www.profitap.com/x2-12800g-network-packet-broker/)

 

**NPB Features**

- [Data Masking](https://www.profitap.com/data-masking/)
- [Timestamping](https://www.profitap.com/timestamping/)
- [Packet Deduplication](https://www.profitap.com/packet-deduplication/)
- [Tunneling & De-tunneling](https://www.profitap.com/tunneling-de-tunneling/)
- [Packet Slicing](https://www.profitap.com/packet-slicing/)
- [GTP IP Filtering](https://www.profitap.com/gtp-ip-filtering/)

[**Network TAPs**](https://www.profitap.com/network-taps/)

- [Secure TAPs](https://www.profitap.com/secure-data-access/)
- [Fiber TAPs](https://www.profitap.com/fiber-taps/)
- [Copper TAPs](https://www.profitap.com/copper-taps/)
- [Aggregation TAPs](https://www.profitap.com/aggregation-taps/)
- [Bypass TAPs](https://www.profitap.com/bypass-taps/)
- [Regeneration TAPs](https://www.profitap.com/regeneration-taps/)
- [Replication TAPs](https://www.profitap.com/replication-taps/)

 

**Cloud Visibility**

- [VMware](https://www.profitap.com/vtap/)
- [Kubernetes](https://www.profitap.com/cloud-tap/)
- [AWS EKS](https://www.profitap.com/cloud-tap/)
- [Azure VM](https://www.profitap.com/cloud-tap/#azure)

 

**Centralized Management**

- [IOTA CM](https://www.profitap.com/iota-cm/)
- [Supervisor](https://www.profitap.com/supervisor/)

 

[**Solutions**](https://www.profitap.com/solutions/)

- [Performance analysis & diagnostics](https://www.profitap.com/performance-analysis-and-diagnostics-solutions/)
- [Network troubleshooting](https://www.profitap.com/network-troubleshooting-solutions/)
- [Packet forensics](https://www.profitap.com/packet-forensics-solutions/)
- [Network security](https://www.profitap.com/network-security-solutions/)
- [ICS/OT network monitoring](https://www.profitap.com/ics-ot-network-monitoring-solutions/)

[**About Us**](https://www.profitap.com/our-story/)

- [Our Story](https://www.profitap.com/our-story/)
- [Events](https://www.profitap.com/events/)
- [Careers](https://jobs.profitap.com/)
- [News](https://news.profitap.com/)

 

**Resources**

- [Knowledge Base](https://kb.profitap.com/)
- [Software & Drivers](https://resources.profitap.com/)
- [Product Portfolio](https://www.profitap.com/portfolio/)
- [Blog](https://insights.profitap.com/)
- [Library](https://www.profitap.com/library/)
- [Product Updates](https://www.profitap.com/product-updates/)
- [Academy](https://www.profitap.com/academy/)

 

**Partners**

- [Partner with Us](https://www.profitap.com/partner-with-us/)
- [Our Partners](https://www.profitap.com/our-partners/)
- [Locate a Reseller](https://www.profitap.com/locate-a-reseller/)

 

**Contact**

- [Contact Us](https://www.profitap.com/contact-us/)
- [Professional Services](https://www.profitap.com/professional-services/)
- [Get a Quote](https://www.profitap.com/get-a-quote/)

---

© 2026 Profitap HQ B.V. and its licensors. All Rights Reserved — Profitap HQ B.V., High Tech Campus 84, 5656 AG Eindhoven, The Netherlands | [Privacy Policy](https://www.profitap.com/privacy-policy/) | [Terms and Conditions](https://www.profitap.com/terms-and-conditions/)

```json
{
  "@context" : "http://schema.org",
  "@type" : "Blog",
  "author" : {
    "@type" : "Person",
    "name" : "Profitap"
  },
  "dateModified" : "May 22, 2024, 9:35:25 AM",
  "datePublished" : "2024-05-22 09:35:25",
  "description" : "Learn how to detect blacklisted IP addresses using IOTA's RESTful API on your network with Python scripting. Enhance your network security with automated monitoring.",
  "headline" : "Detecting blacklisted IP addresses through IOTA API",
  "image" : {
    "@type" : "ImageObject",
    "url" : "https://2954816.fs1.hubspotusercontent-na1.net/hubfs/2954816/Detecting-Blacklisted_v2.jpg"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://cdn2.hubspot.net/hubfs/2954816/Logos/Profitap-logo-black-orange-whitebg.png"
    },
    "name" : "Profitap HQ B.V."
  }
}
```