isIPsafe

Registre officiel Autres

Check whether an IP address or network is malicious and report abusive IPs to isIPsafe.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http isipsafe 'https://isipsafe.com/mcp' --header 'X-API-Key: <isIPsafe API key. Optional for lookups, needed to report IPs. Get one at https://isipsafe.com/account>'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "isipsafe": {
            "type": "http",
            "url": "https://isipsafe.com/mcp",
            "headers": {
                "X-API-Key": "<isIPsafe API key. Optional for lookups, needed to report IPs. Get one at https://isipsafe.com/account>"
            }
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. isipsafe
  2. Get an API key
  3. Python
  4. Command line
  5. Categories
  6. Links
  7. Licence

isipsafe

Official Python client and command-line tool for isIPsafe, the free IP reputation and abuse reporting service.

  • Check whether an IP address is malicious before you trust it
  • Report attackers from your logs, one at a time or 10,000 at once
  • Download the blocklist in a firewall-ready format (nftables, ipset, nginx, apache, MikroTik, STIX and more)

No dependencies outside the Python standard library. Python 3.9+.

pip install isipsafe

Get an API key

Lookups work without a key (400 per day per address). Reporting, bulk uploads and the blocklist need a free key from isipsafe.com/login. A key also raises the lookup limit to 10,000 per day.

export ISIPSAFE_API_KEY=sl_your_key_here

The client sends the key in an Authorization header, never in the URL, so it stays out of proxy and server logs.

Python

from isipsafe import Client

client = Client()  # reads ISIPSAFE_API_KEY, or pass Client("sl_...")

result = client.check("185.220.101.1")
print(result.abuse_confidence_score, result.total_reports, result.categories)

if result.is_malicious():  # score >= 75, has reports, not allowlisted
    block(result.ip_address)

client.report(
    "203.0.113.50",
    ["ssh", "brute-force"],
    comment="sshd: 212 failed logins in 10 minutes",
)
Report many addresses at once
result = client.bulk_report(
    [
        {"ip": "203.0.113.50", "categories": ["ssh", "brute-force"], "comment": "sshd"},
        {"ip": "198.51.100.4", "categories": "port-scan"},
    ]
)
print(result.saved_reports, result.invalid_reports)
Blocklist
ips = client.blocklist(confidence_minimum=90, except_countries=["GB"])
nft = client.blocklist_raw(format="nftables")
Everything else
MethodWhat it does
check(ip, max_age_in_days=None, verbose=False)Score, report counts, location and network for one address
is_malicious(ip, threshold=75)Shortcut that returns True or False
report(ip, categories, comment=None, timestamp=None)Report an address or CIDR network
bulk_report(rows) / bulk_report_csv(text)Up to 10,000 reports in one request
reports(ip, page=1, per_page=25)Reports filed against an address, newest first
check_block(network)Reported addresses inside a network (up to /16 or /48)
blocklist(...) / blocklist_raw(format=...)The highest-confidence addresses
clear_address(ip)Delete your own reports for an address
categories()All report categories and their slugs
Errors

Every error inherits from isipsafe.IsIPsafeError.

ExceptionWhen
AuthenticationErrorMissing or wrong API key (401)
ValidationErrorInvalid input, or an allowlisted address was reported (422)
RateLimitErrorToo many requests (429); see .retry_after
APIErrorAny other error status; see .status
NetworkErrorThe API could not be reached

Lookups are retried automatically on network errors and 5xx responses. Reporting the same address twice within 15 minutes is not an error: report() returns a result with duplicate=True.

Command line

$ isipsafe check 185.220.101.1
185.220.101.1  not flagged
  score       56/100 (Medium)
  reports     24 from 5 reporters
  categories  port-scan, hacking, vuln-scan, web-app-attack, c2
  network     DE AS60729 Stiftung Erneuerbare Freiheit
  flags       Tor exit
  details     https://isipsafe.com/ip/185.220.101.1

$ isipsafe report 203.0.113.50 -c ssh,brute-force -m "sshd: 212 failed logins"
$ isipsafe bulk-report reports.csv
$ isipsafe blocklist --format nftables --confidence-minimum 90 -o blocklist.nft
$ isipsafe check-block 185.220.101.0/24
$ isipsafe categories

Add --json to check, report, reports, check-block and categories for machine-readable output.

Use --fail-if-malicious in shell scripts. The command exits with status 1 when the address is malicious:

if ! isipsafe check "$IP" --fail-if-malicious --threshold 80 > /dev/null; then
    echo "blocking $IP"
fi

Exit codes: 0 success, 1 malicious (only with --fail-if-malicious), 2 error.

Categories

Use the slug or the numeric ID. Common ones: ssh, brute-force, port-scan, web-app-attack, sql-injection, vuln-scan, bad-bot, ddos, email-spam, phishing. Run isipsafe categories for the full list, or see isipsafe.com/categories.

Licence

The code in this repository is MIT licensed. Data returned by the isIPsafe API is covered by the isIPsafe EULA.

Questions fréquentes

Qu'est-ce que isIPsafe ?

Check whether an IP address or network is malicious and report abusive IPs to isIPsafe.

Comment installer isIPsafe ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http isipsafe 'https://isipsafe.com/mcp' --header 'X-API-Key: <isIPsafe API key. Optional for lookups, needed to report IPs. Get one at https://isipsafe.com/account>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour isIPsafe ?

Oui. Il attend X-API-Key, à renseigner dans sa configuration.

isIPsafe est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient isIPsafe ?

Il est publié par isipsafe. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.