IP address investigation playbook
Who holds an IP, what it exposes and what runs next to it, without scanning it
intermediate
Shows what Shodan has seen on an IP: open ports, services, banners, vulnerabilities, location
Community-packaged from github.com/achillean/shodan-python: the registry's community pins the upstream release; the tool is its authors' work. Maintain that project? Claim this package.
Run
Through ot mcp, an agent calls run_tool with this; ot asks you before anything that goes online or touches a target. Set it up: ot mcp install claude (or cursor, vscode, codex, gemini).
{"tool":"osintverse-community/shodan-host","target":"1.1.1.1","input_type":"ip"}Or just say: "Run osintverse-community/shodan-host on 1.1.1.1 with OTInstaller." The registry's read-only MCP server at api.otinstaller.com/mcp can find tools without installing anything.
ot run osintverse-community/shodan-host ip:1.1.1.1 --format tableot install osintverse-community/shodan-hostDocker image in a read-only container · network allowed · needs SHODAN_API_KEY · up to 2 min. The first ot run installs the tool after asking once. The example value is the registry's own test input, so this command has run. Drop --format table for JSON.
ot? Install it in one linecurl -fsSL https://get.otinstaller.com/ot | shot release for your machine from GitHub Releases.checksums.txt, and the Ed25519 signature on that file against the key built into the script.ot in /usr/local/bin or ~/.local/bin. Nothing else is written. Read the script.irm https://get.otinstaller.com/ot.ps1 | iexot release for your machine from GitHub Releases.checksums.txt, and the Ed25519 signature on that file against the key built into the script.ot in %LOCALAPPDATA%\Programs\ot, and adds it to your PATH. Nothing else is written. Read the script.sha256:8e9d54b0…c13436. The same bytes on every install; ot pulls by digest, never by tag.ot checks the same identity before every install and refuses another signer.ot pulls the same digest from the mirror and checks the same signature.{
"envelope": 1,
"tool": "osintverse-community/shodan-host@1.31.0",
"runtime": "docker",
"input": {
"ip": "1.1.1.1"
},
"started_at": "2026-10-21T09:00:00Z",
"duration_ms": 4100,
"exit_code": 0,
"entities": [
{
"type": "other",
"value": "…"
},
{
"type": "location",
"value": "51.5074,-0.1278",
"attrs": {
"city": "London"
}
},
{
"type": "organization",
"value": "Example Ltd"
}
],
"warnings": []
}Every tool returns this shape, shaped here from what this tool declares it finds. --format table to read it; ot extract and ot auto to continue.
This repository packages github.com/achillean/shodan-python for the OTInstaller Registry as osintverse-community/shodan-host. The tool is the work of its authors, under the MIT license; this repository only holds the manifest and release workflow.
Report problems with the tool upstream, and problems with the packaging here. If you maintain the upstream project and want to publish it yourself, open an issue or run ot claim osintverse-community/shodan-host: the package is transferred to you.
The Dockerfile here builds the upstream release at a pinned version, and the otinstaller release workflow builds, signs and publishes the image.
shodan_host.sh passes the SHODAN_API_KEY secret to shodan init inside the container (the Shodan CLI only reads keys from its config file) and runs shodan host.
ot run osintverse-community/shodan-host --ip …
Packaged version: 1.31.0.
Who holds an IP, what it exposes and what runs next to it, without scanning it
Alternatives to shodan-host that also take an ip address; ot auto runs every installed one on the same value.
Looks up who holds an IP address through RDAP: network, ASN, organisation and contacts
Lists an IP's open ports passively from Shodan InternetDB, without scanning it