ip-fetch
IP Geolocation data fetcher for Kodachi OS - Fetches and displays IP address information including geolocation, ISP, and network details
Version: 9.0.1 | Size: 3.6MB | Author: Warith Al Maawali
License: Proprietary | Website: https://www.digi77.com
File Information
| Property | Value |
|---|---|
| Binary Name | ip-fetch |
| Version | 9.0.1 |
| Build Date | 2026-03-23T08:26:06.659560943Z |
| Rust Version | 1.82.0 |
| File Size | 3.6MB |
| JSON Data | View Raw JSON |
SHA256 Checksum
Features
| Feature | Description |
|---|---|
| Feature | Multi-source IP geolocation with fallback support |
| Feature | IPv4 and IPv6 dual-stack support |
| Feature | Bulk IP lookup with optimized performance |
| Feature | Offline mode with cached data |
| Feature | VPN and proxy detection |
| Feature | ISP and organization information |
| Feature | Secure API communication with certificate pinning |
| Feature | Rate limiting and retry logic |
| Feature | Comprehensive error handling |
Security Features
| Feature | Description |
|---|---|
| Authentication | Secure authentication with certificate pinning |
| Encryption | TLS 1.3 for all network communications |
| Inputvalidation | All inputs are validated and sanitized |
| Ratelimiting | Built-in rate limiting for network operations |
System Requirements
| Requirement | Value |
|---|---|
| OS | Linux (Debian-based) |
| Privileges | root/sudo for system operations |
| Dependencies | OpenSSL, libcurl |
Global Options
| Flag | Description |
|---|---|
-h, --help |
Print help information |
-v, --version |
Print version information |
-n, --info |
Display detailed information |
-e, --examples |
Show usage examples |
--json |
Output in JSON format |
--json-pretty |
Pretty-print JSON output with indentation |
--json-human |
Enhanced JSON output with improved formatting (like jq) |
--verbose |
Enable verbose output |
--quiet |
Suppress non-essential output |
--no-color |
Disable colored output |
--config <FILE> |
Use custom configuration file |
--timeout <SECS> |
Set timeout (default: 30) |
--retry <COUNT> |
Retry attempts (default: 3) |
Commands
Basic Operations
plain-ip
Simple plain text IP address retrieval
Usage:
Cache Management
cache
Manage IP cache for improved performance
Usage:
Comprehensive Testing
test-all
Complete test suites for all functionality
Usage:
DNS Operations
dns
DNS-based IP resolution and testing
Usage:
Geolocation Services
geo
Geolocation API testing with various IPs
Usage:
IP Operations
fetch
Fetch IP geolocation information (default command)
Usage:
Network Testing
tor
Test IP lookup through Tor SOCKS proxy
Usage:
check-tor
Check if connection is using Tor network
Usage:
Testing Operations
test-fallback
Test fallback mechanisms and multiple source verification
Usage:
verify-multi
Verify multiple sources
Usage:
random
Test random server selection functionality
Usage:
Operational Scenarios
Scenario-oriented workflows generated from the binary's built-in -e --json examples.
Scenario 1: Usage Examples
Common usage patterns for ip-fetch
Step 1: Get your current public IP
Expected Output: Current IP with geolocation dataStep 2: Show usage examples
Expected Output: Display all usage patternsScenario 2: Basic Usage
Common IP lookup operations
Step 1: Get your current public IP from Kodachi Cloud (primary) with automatic fallback
Expected Output: Current IP with geolocation dataStep 2: Look up specific IP address
Expected Output: Geolocation data for 8.8.8.8Step 3: Look up multiple IP addresses
Expected Output: Bulk lookup resultsNote
Automatically uses bulk mode for better performance
Step 4: Force refresh cache and get latest IP data
Expected Output: Fresh IP data bypassing cacheScenario 3: Output Formats
Different ways to format output
Step 1: Get your current IP in JSON format from primary source with fallback
Expected Output: JSON object with complete IP informationStep 2: Formatted JSON with indentation
Expected Output: Pretty-printed JSON outputStep 3: Enhanced human-readable JSON output with colors (like jq)
Expected Output: Colorized JSON output for better readabilityScenario 4: Basic IP Lookups
Own IP lookup and single IP lookup operations
Step 1: Explicitly request IPv4 from primary source with fallback
Expected Output: Shows your IPv4 address with geolocation dataStep 2: Get your current public IPv6 from Kodachi Cloud (primary) with automatic fallback
Expected Output: Shows your IPv6 address with geolocation dataStep 3: Get your IPv6 in JSON format from primary source with fallback
Expected Output: JSON object with IPv6 geolocation dataStep 4: Get both IPv4 and IPv6 information from primary sources with fallback
Expected Output: Shows both IPv4 and IPv6 with full detailsStep 5: Get both IPs in JSON format from primary sources with fallback
Expected Output: JSON object with both IPv4 and IPv6 dataScenario 5: Fallback and Multi-Source Testing
Testing fallback mechanisms and multiple source verification
Step 1: Test IPv4 JSON sources with automatic fallback
Expected Output: IPv4 JSON fallback test resultsStep 2: Test IPv6 JSON sources with automatic fallback
Expected Output: IPv6 JSON fallback test results in JSON formatStep 3: Test IPv4 plain text sources with automatic fallback
Expected Output: IPv4 plain text fallback resultsStep 4: Test IPv6 plain text sources with automatic fallback
Expected Output: IPv6 plain text fallback resultsStep 5: Test ALL IPv4 sources to verify consistency
Expected Output: IPv4 multi-source verification reportStep 6: Test ALL IPv6 sources with JSON output
Expected Output: JSON IPv6 multi-source verificationScenario 6: Tor Detection
Check if your connection is using Tor
Step 1: Check if connection is using Tor and show IP
Expected Output: Tor status and current IP addressStep 2: Get just the IP address
Expected Output: Your current IP addressStep 3: Get just the Tor status
Expected Output: true or falseStep 4: Get Tor status and IP in JSON format
Expected Output: JSON object with IsTor and IP fieldsStep 5: Pretty-printed JSON output
Expected Output: Formatted JSON with Tor statusStep 6: Colorized JSON output (like jq)
Expected Output: Colored JSON with Tor statusScenario 7: Tor Network Testing
Testing IP lookup through Tor SOCKS proxy
Step 1: Get IPv4 through Tor SOCKS5 proxy from ONE random source
Expected Output: IP address via Tor proxyStep 2: Test ALL IPv4 sources through Tor SOCKS5 proxy
Expected Output: Comprehensive Tor IPv4 test resultsStep 3: Test ALL IPv6 sources through Tor SOCKS5 proxy with JSON output
Expected Output: JSON array with all Tor IPv6 resultsStep 4: Get IPv4 JSON response through Tor SOCKS5 proxy
Expected Output: JSON IPv4 data via TorStep 5: Default IPv4 source through Tor SOCKS5 proxy
Expected Output: IPv4 IP source via TorStep 6: Use custom Tor port with ONE random IPv4 source
Expected Output: IPv4 via custom Tor portStep 7: Use custom Tor port with ALL IPv4 sources
Expected Output: All IPv4 sources via custom Tor portScenario 8: DNS Resolution Testing
DNS-based IP resolution and testing
Step 1: Test DNS-based IPv4 resolution using ONE random DNS query
Expected Output: IPv4 address from DNS queryStep 2: Test DNS-based IPv6 resolution using ONE random DNS query
Expected Output: IPv6 address from DNS queryStep 3: Test specific DNS query by index
Expected Output: IPv4 from specific DNS queryStep 4: Test ALL available IPv6 DNS queries with JSON output
Expected Output: JSON array with all IPv6 DNS resultsScenario 9: Comprehensive Testing Suite
Complete test suites for all functionality
Step 1: Complete test suite results
Expected Output: Full functionality test reportStep 2: Complete test suite including Tor tests
Expected Output: Comprehensive test results with TorStep 3: Complete test suite including Tor tests using custom SOCKS port 9150
Expected Output: JSON formatted test results with custom Tor portStep 4: JSON formatted complete test results
Expected Output: Structured test suite resultsScenario 10: Random Source Testing
Test random IP sources for reliability
Step 1: Test ONE random IPv4 plain text source
Expected Output: Random IPv4 source test resultStep 2: Test ONE random IPv4 JSON source with JSON output
Expected Output: Random IPv4 JSON source test resultStep 3: Test ONE random DNS IPv4 query
Expected Output: Random DNS IPv4 query resultStep 4: Test ONE random DNS IPv6 query with JSON output
Expected Output: Random DNS IPv6 query result in JSONScenario 11: Geolocation API Testing
Test geolocation APIs with various IPs
Step 1: Test geo APIs with current IP
Expected Output: Geolocation test results for your IPStep 2: Test geo APIs with specific IP
Expected Output: Geolocation test results for 8.8.8.8Step 3: Show raw JSON responses
Expected Output: Detailed geo API responsesStep 4: Geo data for IP in JSON
Expected Output: JSON geolocation data for 1.1.1.1Scenario 12: Plain Text IP Retrieval
Get IP addresses in plain text format
Step 1: Get IPv4 plain text
Expected Output: Your IPv4 address as plain textStep 2: Get IPv6 plain text
Expected Output: Your IPv6 address as plain textStep 3: Use specific server by index
Expected Output: IPv4 from server index 5Scenario 13: Bulk Operations
Efficient bulk IP lookups
Step 1: Efficient bulk lookup of multiple IPs
Expected Output: Bulk results for all IPsStep 2: Bulk lookup with JSON output
Expected Output: JSON array with all IP dataStep 3: Disable bulk mode for individual lookups
Expected Output: Individual lookup resultsStep 4: Bulk IPv4-only lookups
Expected Output: Bulk IPv4 resultsStep 5: Bulk lookup without saving to history
Expected Output: Bulk results (not saved)Scenario 14: Custom Server Options
Use custom servers for IP lookup
Step 1: Use custom server for IP lookup
Expected Output: IP from custom serverStep 2: Custom server with JSON output
Expected Output: JSON from custom serverStep 3: Custom IPv4 server
Expected Output: IPv4 from custom serverStep 4: Custom IPv6 server
Expected Output: IPv6 from custom serverScenario 15: Output Formatting Options
Various output formatting options
Step 1: Bulk lookup in JSON
Expected Output: JSON array with IP dataStep 2: Lookup without saving to history
Expected Output: IP data (not saved)Scenario 16: No History Operations
Operations without saving to history
Step 1: Get own IP without saving to history
Expected Output: Your IP (not saved)Step 2: IPv6 multi-source verification without history
Expected Output: IPv6 verification results (not saved)Step 3: DNS resolution without saving to history
Expected Output: DNS results (not saved)Step 4: Tor test (ONE random source) without saving results to history
Expected Output: Tor test result (not saved)Step 5: Tor test (ALL sources) without saving results to history
Expected Output: All Tor test results (not saved)Step 6: Random IP test without history in JSON
Expected Output: Random test JSON (not saved)Step 7: Geo lookup without saving to history
Expected Output: Geo data (not saved)Step 8: Comprehensive test without saving any results to history
Expected Output: Full test results (not saved)Environment Variables
| Variable | Description | Default | Values |
|---|---|---|---|
RUST_LOG |
Set logging level | info | error |
NO_COLOR |
Disable all colored output when set | unset | 1 |
Exit Codes
| Code | Description |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Invalid arguments |
| 3 | Permission denied |
| 4 | Network error |
| 5 | File not found |