{
  "report_info": {
    "version": "9.0.1",
    "generated_at": "2026-04-11T17:16:28Z",
    "binary_name": "ip-fetch"
  },
  "binary": {
    "name": "ip-fetch",
    "path": "/home/kodachi/k900/dashboard/hooks/ip-fetch",
    "timestamp": "2026-04-11T17:16:28Z",
    "file_info": {
      "size": 3786080,
      "sha256": "4d758b2df41d7009da31b8b43c9c20ef8db8f17242a7cbea356dcfd9c56f29d9"
    },
    "flag_n": {
      "command": "info",
      "data": {
        "author": "Warith Al Maawali",
        "copyright": "© 2026 Linux Kodachi",
        "description": "IP Geolocation data fetcher for Kodachi OS - Fetches and displays IP address information including geolocation, ISP, and network details",
        "features": [
          "Multi-source IP geolocation with fallback support",
          "IPv4 and IPv6 dual-stack support",
          "Bulk IP lookup with optimized performance",
          "Offline mode with cached data",
          "VPN and proxy detection",
          "ISP and organization information",
          "Secure API communication with certificate pinning",
          "Rate limiting and retry logic",
          "Comprehensive error handling"
        ],
        "license": "Proprietary",
        "name": "ip-fetch",
        "securityFeatures": {
          "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"
        },
        "systemRequirements": {
          "dependencies": [
            "OpenSSL",
            "libcurl"
          ],
          "os": "Linux (Debian-based)",
          "privileges": "root/sudo for system operations"
        },
        "version": "9.0.1",
        "website": "https://www.digi77.com"
      },
      "errors": [],
      "metadata": {
        "executionTime": 1,
        "hostname": "Boardroom-System",
        "user": "kodachi"
      },
      "status": "success",
      "timestamp": "2026-04-11T17:16:28.380358188Z",
      "version": "9.0.1",
      "warnings": []
    },
    "flag_v": {
      "command": "version",
      "data": {
        "buildDate": "2026-04-11T17:16:28.454945819Z",
        "gitCommit": "unknown",
        "name": "ip-fetch",
        "rustVersion": "1.82.0",
        "version": "9.0.1"
      },
      "errors": [],
      "metadata": {
        "executionTime": 2,
        "hostname": "Boardroom-System",
        "user": "kodachi"
      },
      "status": "success",
      "timestamp": "2026-04-11T17:16:28.457301236Z",
      "version": "9.0.1",
      "warnings": []
    },
    "flag_h": {
      "command": "help",
      "data": {
        "commandCategories": [
          {
            "category": "Basic Operations",
            "commands": [
              {
                "description": "Simple plain text IP address retrieval",
                "name": "plain-ip",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch plain-ip [OPTIONS]"
              }
            ]
          },
          {
            "category": "Cache Management",
            "commands": [
              {
                "description": "Manage IP cache for improved performance",
                "name": "cache",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch cache [OPTIONS]"
              }
            ]
          },
          {
            "category": "Comprehensive Testing",
            "commands": [
              {
                "description": "Complete test suites for all functionality",
                "name": "test-all",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch test-all [OPTIONS]"
              }
            ]
          },
          {
            "category": "DNS Operations",
            "commands": [
              {
                "description": "DNS-based IP resolution and testing",
                "name": "dns",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch dns [OPTIONS]"
              }
            ]
          },
          {
            "category": "Geolocation Services",
            "commands": [
              {
                "description": "Geolocation API testing with various IPs",
                "name": "geo",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch geo [OPTIONS]"
              }
            ]
          },
          {
            "category": "IP Operations",
            "commands": [
              {
                "description": "Fetch IP geolocation information (default command)",
                "name": "fetch",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch fetch [OPTIONS]"
              }
            ]
          },
          {
            "category": "Network Testing",
            "commands": [
              {
                "description": "Test IP lookup through Tor SOCKS proxy",
                "name": "tor",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch tor [OPTIONS]"
              },
              {
                "description": "Check if connection is using Tor network",
                "name": "check-tor",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch check-tor [OPTIONS]"
              }
            ]
          },
          {
            "category": "Testing Operations",
            "commands": [
              {
                "description": "Test fallback mechanisms and multiple source verification",
                "name": "test-fallback",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch test-fallback [OPTIONS]"
              },
              {
                "description": "Verify multiple sources",
                "name": "verify-multi",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch verify-multi [OPTIONS]"
              },
              {
                "description": "Test random server selection functionality",
                "name": "random",
                "options": [],
                "requires_sudo": false,
                "usage": "ip-fetch random [OPTIONS]"
              }
            ]
          }
        ],
        "description": "IP Geolocation data fetcher for Kodachi OS - Fetches and displays IP address information including geolocation, ISP, and network details",
        "environmentVariables": [
          {
            "default": "info",
            "description": "Set logging level",
            "name": "RUST_LOG",
            "values": "error|warn|info|debug|trace"
          },
          {
            "default": "unset",
            "description": "Disable all colored output when set",
            "name": "NO_COLOR",
            "values": "1|true|yes (any value disables color)"
          }
        ],
        "exitCodes": {
          "0": "Success",
          "1": "General error",
          "2": "Invalid arguments",
          "3": "Permission denied",
          "4": "Network error",
          "5": "File not found"
        },
        "globalOptions": [
          {
            "description": "Print help information",
            "flag": "-h, --help"
          },
          {
            "description": "Print version information",
            "flag": "-v, --version"
          },
          {
            "description": "Display detailed information",
            "flag": "-n, --info"
          },
          {
            "description": "Show usage examples",
            "flag": "-e, --examples"
          },
          {
            "description": "Output in JSON format",
            "flag": "--json"
          },
          {
            "description": "Pretty-print JSON output with indentation",
            "flag": "--json-pretty"
          },
          {
            "description": "Enhanced JSON output with improved formatting (like jq)",
            "flag": "--json-human"
          },
          {
            "description": "Enable verbose output",
            "flag": "--verbose"
          },
          {
            "description": "Suppress non-essential output",
            "flag": "--quiet"
          },
          {
            "description": "Disable colored output",
            "flag": "--no-color"
          },
          {
            "description": "Use custom configuration file",
            "flag": "--config <FILE>"
          },
          {
            "description": "Set timeout (default: 30)",
            "flag": "--timeout <SECS>"
          },
          {
            "description": "Retry attempts (default: 3)",
            "flag": "--retry <COUNT>"
          }
        ],
        "name": "ip-fetch",
        "usage": "ip-fetch [OPTIONS] [COMMAND] [ARGS]"
      },
      "errors": [],
      "metadata": {
        "executionTime": 2,
        "hostname": "Boardroom-System",
        "user": "kodachi"
      },
      "status": "success",
      "timestamp": "2026-04-11T17:16:28.543660813Z",
      "version": "9.0.1",
      "warnings": []
    },
    "flag_e": {
      "command": "examples",
      "data": {
        "categories": [
          {
            "description": "Common usage patterns for ip-fetch",
            "examples": [
              {
                "command": "ip-fetch",
                "description": "Get your current public IP",
                "expectedOutput": "Current IP with geolocation data"
              },
              {
                "command": "ip-fetch --examples",
                "description": "Show usage examples",
                "expectedOutput": "Display all usage patterns"
              }
            ],
            "id": "0_usage_examples",
            "title": "Usage Examples"
          },
          {
            "description": "Common IP lookup operations",
            "examples": [
              {
                "command": "ip-fetch",
                "description": "Get your current public IP from Kodachi Cloud (primary) with automatic fallback",
                "expectedOutput": "Current IP with geolocation data"
              },
              {
                "command": "ip-fetch 8.8.8.8",
                "description": "Look up specific IP address",
                "expectedOutput": "Geolocation data for 8.8.8.8"
              },
              {
                "command": "ip-fetch 8.8.8.8 1.1.1.1",
                "description": "Look up multiple IP addresses",
                "expectedOutput": "Bulk lookup results",
                "notes": "Automatically uses bulk mode for better performance"
              },
              {
                "command": "ip-fetch --refresh-cache",
                "description": "Force refresh cache and get latest IP data",
                "expectedOutput": "Fresh IP data bypassing cache"
              }
            ],
            "id": "1_basic_usage",
            "title": "Basic Usage"
          },
          {
            "description": "Different ways to format output",
            "examples": [
              {
                "command": "ip-fetch --json",
                "description": "Get your current IP in JSON format from primary source with fallback",
                "expectedOutput": "JSON object with complete IP information"
              },
              {
                "command": "ip-fetch --json-pretty",
                "description": "Formatted JSON with indentation",
                "expectedOutput": "Pretty-printed JSON output"
              },
              {
                "command": "ip-fetch --json-human",
                "description": "Enhanced human-readable JSON output with colors (like jq)",
                "expectedOutput": "Colorized JSON output for better readability"
              }
            ],
            "id": "2_output_formats",
            "title": "Output Formats"
          },
          {
            "description": "Own IP lookup and single IP lookup operations",
            "examples": [
              {
                "command": "ip-fetch --ipv4",
                "description": "Explicitly request IPv4 from primary source with fallback",
                "expectedOutput": "Shows your IPv4 address with geolocation data"
              },
              {
                "command": "ip-fetch --ipv6",
                "description": "Get your current public IPv6 from Kodachi Cloud (primary) with automatic fallback",
                "expectedOutput": "Shows your IPv6 address with geolocation data"
              },
              {
                "command": "ip-fetch --ipv6 --json",
                "description": "Get your IPv6 in JSON format from primary source with fallback",
                "expectedOutput": "JSON object with IPv6 geolocation data"
              },
              {
                "command": "ip-fetch --both",
                "description": "Get both IPv4 and IPv6 information from primary sources with fallback",
                "expectedOutput": "Shows both IPv4 and IPv6 with full details"
              },
              {
                "command": "ip-fetch --both --json",
                "description": "Get both IPs in JSON format from primary sources with fallback",
                "expectedOutput": "JSON object with both IPv4 and IPv6 data"
              }
            ],
            "id": "5_basic_ip_lookups",
            "title": "Basic IP Lookups"
          },
          {
            "description": "Testing fallback mechanisms and multiple source verification",
            "examples": [
              {
                "command": "ip-fetch test-fallback --ipv4 json",
                "description": "Test IPv4 JSON sources with automatic fallback",
                "expectedOutput": "IPv4 JSON fallback test results"
              },
              {
                "command": "ip-fetch test-fallback --ipv6 json --json",
                "description": "Test IPv6 JSON sources with automatic fallback",
                "expectedOutput": "IPv6 JSON fallback test results in JSON format"
              },
              {
                "command": "ip-fetch test-fallback --ipv4 plain",
                "description": "Test IPv4 plain text sources with automatic fallback",
                "expectedOutput": "IPv4 plain text fallback results"
              },
              {
                "command": "ip-fetch test-fallback --ipv6 plain",
                "description": "Test IPv6 plain text sources with automatic fallback",
                "expectedOutput": "IPv6 plain text fallback results"
              },
              {
                "command": "ip-fetch verify-multi --ipv4",
                "description": "Test ALL IPv4 sources to verify consistency",
                "expectedOutput": "IPv4 multi-source verification report"
              },
              {
                "command": "ip-fetch verify-multi --ipv6 --json",
                "description": "Test ALL IPv6 sources with JSON output",
                "expectedOutput": "JSON IPv6 multi-source verification"
              }
            ],
            "id": "6_fallback_and_multi-source_testing",
            "title": "Fallback and Multi-Source Testing"
          },
          {
            "description": "Check if your connection is using Tor",
            "examples": [
              {
                "command": "ip-fetch check-tor",
                "description": "Check if connection is using Tor and show IP",
                "expectedOutput": "Tor status and current IP address"
              },
              {
                "command": "ip-fetch check-tor --ip-only",
                "description": "Get just the IP address",
                "expectedOutput": "Your current IP address"
              },
              {
                "command": "ip-fetch check-tor --status-only",
                "description": "Get just the Tor status",
                "expectedOutput": "true or false"
              },
              {
                "command": "ip-fetch check-tor --json",
                "description": "Get Tor status and IP in JSON format",
                "expectedOutput": "JSON object with IsTor and IP fields"
              },
              {
                "command": "ip-fetch check-tor --json-pretty",
                "description": "Pretty-printed JSON output",
                "expectedOutput": "Formatted JSON with Tor status"
              },
              {
                "command": "ip-fetch check-tor --json-human",
                "description": "Colorized JSON output (like jq)",
                "expectedOutput": "Colored JSON with Tor status"
              }
            ],
            "id": "7_tor_detection",
            "title": "Tor Detection"
          },
          {
            "description": "Testing IP lookup through Tor SOCKS proxy",
            "examples": [
              {
                "command": "ip-fetch tor --ipv4",
                "description": "Get IPv4 through Tor SOCKS5 proxy from ONE random source",
                "expectedOutput": "IP address via Tor proxy"
              },
              {
                "command": "ip-fetch tor --ipv4 all",
                "description": "Test ALL IPv4 sources through Tor SOCKS5 proxy",
                "expectedOutput": "Comprehensive Tor IPv4 test results"
              },
              {
                "command": "ip-fetch tor --ipv6 all --json",
                "description": "Test ALL IPv6 sources through Tor SOCKS5 proxy with JSON output",
                "expectedOutput": "JSON array with all Tor IPv6 results"
              },
              {
                "command": "ip-fetch tor --ipv4 --json",
                "description": "Get IPv4 JSON response through Tor SOCKS5 proxy",
                "expectedOutput": "JSON IPv4 data via Tor"
              },
              {
                "command": "ip-fetch tor",
                "description": "Default IPv4 source through Tor SOCKS5 proxy",
                "expectedOutput": "IPv4 IP source via Tor"
              },
              {
                "command": "ip-fetch tor --ipv4 --socks-port 9150",
                "description": "Use custom Tor port with ONE random IPv4 source",
                "expectedOutput": "IPv4 via custom Tor port"
              },
              {
                "command": "ip-fetch tor --ipv4 all --socks-port 9150",
                "description": "Use custom Tor port with ALL IPv4 sources",
                "expectedOutput": "All IPv4 sources via custom Tor port"
              }
            ],
            "id": "8_tor_network_testing",
            "title": "Tor Network Testing"
          },
          {
            "description": "DNS-based IP resolution and testing",
            "examples": [
              {
                "command": "ip-fetch dns --ipv4",
                "description": "Test DNS-based IPv4 resolution using ONE random DNS query",
                "expectedOutput": "IPv4 address from DNS query"
              },
              {
                "command": "ip-fetch dns --ipv6",
                "description": "Test DNS-based IPv6 resolution using ONE random DNS query",
                "expectedOutput": "IPv6 address from DNS query"
              },
              {
                "command": "ip-fetch dns --ipv4 --query-index 0",
                "description": "Test specific DNS query by index",
                "expectedOutput": "IPv4 from specific DNS query"
              },
              {
                "command": "ip-fetch dns --ipv6 --query-index all --json",
                "description": "Test ALL available IPv6 DNS queries with JSON output",
                "expectedOutput": "JSON array with all IPv6 DNS results"
              }
            ],
            "id": "9_dns_resolution_testing",
            "title": "DNS Resolution Testing"
          },
          {
            "description": "Complete test suites for all functionality",
            "examples": [
              {
                "command": "ip-fetch test-all",
                "description": "Complete test suite results",
                "expectedOutput": "Full functionality test report"
              },
              {
                "command": "ip-fetch test-all --include-tor",
                "description": "Complete test suite including Tor tests",
                "expectedOutput": "Comprehensive test results with Tor"
              },
              {
                "command": "ip-fetch test-all --include-tor --socks-port 9150 --json",
                "description": "Complete test suite including Tor tests using custom SOCKS port 9150",
                "expectedOutput": "JSON formatted test results with custom Tor port"
              },
              {
                "command": "ip-fetch test-all --json",
                "description": "JSON formatted complete test results",
                "expectedOutput": "Structured test suite results"
              }
            ],
            "id": "1_comprehensive_testing_suite",
            "title": "Comprehensive Testing Suite"
          },
          {
            "description": "Test random IP sources for reliability",
            "examples": [
              {
                "command": "ip-fetch random --type plain --ipv4",
                "description": "Test ONE random IPv4 plain text source",
                "expectedOutput": "Random IPv4 source test result"
              },
              {
                "command": "ip-fetch random --type json --ipv4 --json",
                "description": "Test ONE random IPv4 JSON source with JSON output",
                "expectedOutput": "Random IPv4 JSON source test result"
              },
              {
                "command": "ip-fetch random --type dns --ipv4",
                "description": "Test ONE random DNS IPv4 query",
                "expectedOutput": "Random DNS IPv4 query result"
              },
              {
                "command": "ip-fetch random --type dns --ipv6 --json",
                "description": "Test ONE random DNS IPv6 query with JSON output",
                "expectedOutput": "Random DNS IPv6 query result in JSON"
              }
            ],
            "id": "7_random_source_testing",
            "title": "Random Source Testing"
          },
          {
            "description": "Test geolocation APIs with various IPs",
            "examples": [
              {
                "command": "ip-fetch geo",
                "description": "Test geo APIs with current IP",
                "expectedOutput": "Geolocation test results for your IP"
              },
              {
                "command": "ip-fetch geo --ip 8.8.8.8",
                "description": "Test geo APIs with specific IP",
                "expectedOutput": "Geolocation test results for 8.8.8.8"
              },
              {
                "command": "ip-fetch geo --verbose",
                "description": "Show raw JSON responses",
                "expectedOutput": "Detailed geo API responses"
              },
              {
                "command": "ip-fetch geo --ip 1.1.1.1 --json",
                "description": "Geo data for IP in JSON",
                "expectedOutput": "JSON geolocation data for 1.1.1.1"
              }
            ],
            "id": "10_geolocation_testing",
            "title": "Geolocation API Testing"
          },
          {
            "description": "Get IP addresses in plain text format",
            "examples": [
              {
                "command": "ip-fetch plain-ip --ipv4",
                "description": "Get IPv4 plain text",
                "expectedOutput": "Your IPv4 address as plain text"
              },
              {
                "command": "ip-fetch plain-ip --ipv6",
                "description": "Get IPv6 plain text",
                "expectedOutput": "Your IPv6 address as plain text"
              },
              {
                "command": "ip-fetch plain-ip --ipv4 --server-index 5",
                "description": "Use specific server by index",
                "expectedOutput": "IPv4 from server index 5"
              }
            ],
            "id": "11_plain_text_ip",
            "title": "Plain Text IP Retrieval"
          },
          {
            "description": "Efficient bulk IP lookups",
            "examples": [
              {
                "command": "ip-fetch --bulk 1.1.1.1 9.9.9.9 8.8.8.8",
                "description": "Efficient bulk lookup of multiple IPs",
                "expectedOutput": "Bulk results for all IPs"
              },
              {
                "command": "ip-fetch --bulk 1.1.1.1 9.9.9.9 --json",
                "description": "Bulk lookup with JSON output",
                "expectedOutput": "JSON array with all IP data"
              },
              {
                "command": "ip-fetch --nobulk 1.1.1.1 9.9.9.9",
                "description": "Disable bulk mode for individual lookups",
                "expectedOutput": "Individual lookup results"
              },
              {
                "command": "ip-fetch --bulk --ipv4 1.1.1.1 9.9.9.9",
                "description": "Bulk IPv4-only lookups",
                "expectedOutput": "Bulk IPv4 results"
              },
              {
                "command": "ip-fetch --bulk --nohistory 1.1.1.1 9.9.9.9 8.8.8.8",
                "description": "Bulk lookup without saving to history",
                "expectedOutput": "Bulk results (not saved)"
              }
            ],
            "id": "15_bulk_operations",
            "title": "Bulk Operations"
          },
          {
            "description": "Use custom servers for IP lookup",
            "examples": [
              {
                "command": "ip-fetch --server https://api.ipify.org",
                "description": "Use custom server for IP lookup",
                "expectedOutput": "IP from custom server"
              },
              {
                "command": "ip-fetch --server https://api.ipify.org --json",
                "description": "Custom server with JSON output",
                "expectedOutput": "JSON from custom server"
              },
              {
                "command": "ip-fetch --server https://ipv4.icanhazip.com --ipv4",
                "description": "Custom IPv4 server",
                "expectedOutput": "IPv4 from custom server"
              },
              {
                "command": "ip-fetch --server https://ipv6.icanhazip.com --ipv6",
                "description": "Custom IPv6 server",
                "expectedOutput": "IPv6 from custom server"
              }
            ],
            "id": "16_server_options",
            "title": "Custom Server Options"
          },
          {
            "description": "Various output formatting options",
            "examples": [
              {
                "command": "ip-fetch --bulk 1.1.1.1 9.9.9.9 --json",
                "description": "Bulk lookup in JSON",
                "expectedOutput": "JSON array with IP data"
              },
              {
                "command": "ip-fetch --nohistory 8.8.8.8",
                "description": "Lookup without saving to history",
                "expectedOutput": "IP data (not saved)"
              }
            ],
            "id": "17_output_options",
            "title": "Output Formatting Options"
          },
          {
            "description": "Operations without saving to history",
            "examples": [
              {
                "command": "ip-fetch --nohistory",
                "description": "Get own IP without saving to history",
                "expectedOutput": "Your IP (not saved)"
              },
              {
                "command": "ip-fetch --nohistory verify-multi --ipv6 --json",
                "description": "IPv6 multi-source verification without history",
                "expectedOutput": "IPv6 verification results (not saved)"
              },
              {
                "command": "ip-fetch --nohistory dns --ipv4",
                "description": "DNS resolution without saving to history",
                "expectedOutput": "DNS results (not saved)"
              },
              {
                "command": "ip-fetch --nohistory tor --ipv4",
                "description": "Tor test (ONE random source) without saving results to history",
                "expectedOutput": "Tor test result (not saved)"
              },
              {
                "command": "ip-fetch --nohistory tor --ipv4 all",
                "description": "Tor test (ALL sources) without saving results to history",
                "expectedOutput": "All Tor test results (not saved)"
              },
              {
                "command": "ip-fetch random --type plain --ipv4 --nohistory --json",
                "description": "Random IP test without history in JSON",
                "expectedOutput": "Random test JSON (not saved)"
              },
              {
                "command": "ip-fetch --nohistory geo --ip 1.1.1.1",
                "description": "Geo lookup without saving to history",
                "expectedOutput": "Geo data (not saved)"
              },
              {
                "command": "ip-fetch --nohistory test-all --json",
                "description": "Comprehensive test without saving any results to history",
                "expectedOutput": "Full test results (not saved)"
              }
            ],
            "id": "18_no_history_examples",
            "title": "No History Operations"
          }
        ],
        "description": "Usage examples for ip-fetch",
        "name": "ip-fetch",
        "quickReference": [
          "sudo ip-fetch --help",
          "sudo ip-fetch --version",
          "sudo ip-fetch --info --json",
          "sudo ip-fetch --examples --json"
        ]
      },
      "errors": [],
      "metadata": {
        "executionTime": 5,
        "hostname": "Boardroom-System",
        "user": "kodachi"
      },
      "status": "success",
      "timestamp": "2026-04-11T17:16:28.777885373Z",
      "version": "9.0.1",
      "warnings": []
    }
  }
}
