Shards
Satori's shards command allows you to deterministically divide massive input datasets (IPs, domains, or URLs) into smaller chunks for distributed processing. It supports IPv4 address ranges, domains, and HTTP/S URLs, and offers high-performance filtering using multiprocessing and vectorized exclusion logic.
Parameters
--shard X/Y (required)
Shard indexXout ofYtotal shards.--input PATH (required)
Input file path or direct IP/CIDR/range/domain/URL
(e.g.,192.168.1.0/24,10.0.0.1-10.0.0.255,example.com,https://example.com).--seed N (optional, default: 1)
Seed for deterministic pseudorandom distribution.--exclude PATH or ENTRY
Exclusion file path or direct IP/CIDR/range/domain/URL to exclude
(e.g.,192.168.1.0/24,10.0.0.1-10.0.0.255,example.com,https://example.com).--results PATH
Output file path (writes to stdout if omitted).
Input Methods
The shards command accepts input in two ways:
Direct input
- CIDR notation:
192.168.1.0/24,0.0.0.0/0 - IP ranges:
192.168.1.1-192.168.1.255 - Single IP:
192.168.1.1 - Domains/URLs:
example.com,https://example.com
File-based input
- Text files
--input file.txtcontaining IP addresses, CIDR ranges, domains, or URLs (one per line)
Exclusion Methods
The --exclude flag also supports both file-based and direct input:
Direct exclusion: CIDR ranges, IP ranges, single IPs, domains, URLs.
Files: Text files
--exclude file.txtwith IP addresses, CIDR or IP ranges, domains, or URLs to exclude (one per line).
Usage Examples
Basic usage with files
satori shards --shard 1/10 --input input.txt --exclude exclude.txt --results output.txtDirect CIDR input
satori shards --shard 1/10 --input 0.0.0.0/24 --exclude 192.168.0.0/16 --results output.txtIP range processing
satori shards --shard 1/10 --input 10.0.0.1-10.0.0.255 --exclude 10.0.0.1 --results output.txtScan entire IPv4 range in seconds
To divide the entire IPv4 range (4.3 billion addresses) into 500 parts and process only the first slice while excluding private networks:
satori shards --shard 1/500 --input 0.0.0.0/0 --exclude 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 --results output.txt