Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pimvh/nrich
Nrich.py is a tool to query the shodan internetdb
https://github.com/pimvh/nrich
internetdb python shodan
Last synced: about 2 months ago
JSON representation
Nrich.py is a tool to query the shodan internetdb
- Host: GitHub
- URL: https://github.com/pimvh/nrich
- Owner: pimvh
- License: gpl-3.0
- Created: 2022-04-13T16:47:25.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-29T09:14:02.000Z (8 months ago)
- Last Synced: 2024-05-30T10:33:25.683Z (8 months ago)
- Topics: internetdb, python, shodan
- Language: Python
- Homepage:
- Size: 81.1 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Nrich
Python equivalent of the Rust [nrich](https://gitlab.com/shodan-public/nrich) program, developed by Shodan. Simple async Python program to interact with the Shodan InternetDB API.
In addition to the official tool, you can specify subnets, and this tool just unpacks them.
## Usage
`nrich --help`:
```
usage: nrich.py [-h] [-input-file INPUT_FILE] [-output-file OUTPUT_FILE] [-output-type {json,str}] [-skip_missing]options:
-h, --help show this help message and exit
-input-file INPUT_FILE, -i INPUT_FILE
File to parse IPs from, if not given parse from stdin
-output-file OUTPUT_FILE, -o OUTPUT_FILE
file to write IPs to
-output-type {json,str}, -t {json,str}
Format to output in
-skip_missing, -s skip IPs with no information on them.
```### Standalone
To run this program as a standalone tool, run:
```
python3 -m nrich
```For example, you can get the InternetDB information for a single IP, with the following command:
```
echo -e "<< your IP HERE>>\n" | python3 -m nrich
INFO:root:creating queue and IPlookup object...
INFO:root:creating tasks...
INFO:ShodanLookupper:Starting session...
INFO:root:running tasks...
INFO:ShodanLookupper:Got response: ShodanResult(ip=None, cpes=[], hostnames=[], ports=[], tags=[], vulns=[], detail='No information available', empty=False)...
{"ip": null, "cpes": [], "hostnames": [], "ports": [], "tags": [], "vulns": [], "detail": "No information available", "empty": false}
```Any stdout piped input will be consumed by Shodan, when it is a file that contains IPs, line by line. Refer to the `--help` statement for usage when you want to consume files instead.
### parse_internetdb.py
Example script to parse the shodan internet.db output
## Installation
This package is available via PyPi. In order to install you can use the following command
```
pip install nrich
```### Nix users
For users of nix a flake is avaible. Have a look at flake.nix for the targets.
If you just want a shell where the package is available, run:
```
nix develop
```# License
GPLv3, see license.txt