# shellcheck shell=dash disable=SC2154,SC2034

___x_cmd_shodan_internetdb(){
    local X_help_cmd='x help -m shodan internetdb';   help:arg:parse
    shodan:arg:format:raw:json2app:all

    local ip="$1"
    if [ -z "$ip" ]; then
        shodan:info "Fetch your public IP to query"
        ip="$(x ip echo)" || return
    fi
    [ -n "$ip" ]    || return 1

    x is ip "$ip"   || {
        ___x_cmd_shodan_is_interactive_env  || N=shodan M="Invalid [IP=$ip]" log:ret:64
        local x_
        ___x_cmd_shodan___getip_            || return
        ip="$x_"
    }

    shodan:info "Fetch info from InternetDB for [IP=$ip]"
    ___x_cmd_shodan_internetdb___"$format"
}

___x_cmd_shodan_internetdb___app(){
    local data; data="$( ___x_cmd_shodan_internetdb___raw )" || shodan:data:ret
    ___x_cmd_pipevar    data        x j2y
}

___x_cmd_shodan_internetdb___json(){
    local data; data="$( ___x_cmd_shodan_internetdb___raw )" || shodan:data:ret
    ___x_cmd_pipevar    data
}

___x_cmd_shodan_internetdb___raw(){
    x curl -sS "https://internetdb.shodan.io/$ip"
}

