#!/bin/bash function rpcLogin() { local IP=$1 local PORT=$2 local USER="$3" local PASS="$4" local RES="" local cmd="curl" local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/auth" local opt="--silent --data" local data="{ \"id\": 1, \"method\": \"login\", \"params\": [ \"$USER\", \"$PASS\" ] }" res=$(${cmd} ${url} ${opt} "${data}") echo ${res} | jq -Ma ".result" } function iwList() { local IP=$1 local PORT=$2 local IFACE=$3 local TOKEN="$4" local cmd="curl" local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys" local opt="--silent --cookie sysauth=${TOKEN} --data" local data="{ \"method\": \"wifi.getiwinfo\", \"params\": [ \"${IFACE}\" ] }" res=$(${cmd} ${url} ${opt} "${data}") echo ${res} |jq } function netDeviceInfo() { local IP=$1 local PORT=$2 local TOKEN="$3" local cmd="curl" local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys" local opt="--silent --cookie sysauth=${TOKEN} --data" local data="{ \"method\": \"net.deviceinfo\", \"params\": [ \"wlan0\" ]}" res=$(${cmd} ${url} ${opt} "${data}") echo ${res} |jq } function netDevices() { local IP=$1 local PORT=$2 local TOKEN="$3" local cmd="curl" local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys" local opt="--silent --cookie sysauth=${TOKEN} --data" local data="{ \"method\": \"net.devices\", \"params\": [] }" res=$(${cmd} ${url} ${opt} "${data}") echo ${res} |jq } function arpTable() { local IP=$1 local PORT=$2 local TOKEN="$3" local cmd="curl" local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys" local opt="--silent --cookie sysauth=${TOKEN} --data" local data="{ \"method\": \"net.arptable\", \"params\": [] }" res=$(${cmd} ${url} ${opt} "${data}") echo ${res} |jq } #FIXME USER PASS authToken=$(rpcLogin 192.168.1.1 8080 root 'XXXXXX EDITE MOI') #netDevices 192.168.1.1 8080 ${authToken} #netDeviceInfo 192.168.1.1 8080 ${authToken} #iwList 192.168.1.1 8080 wlan0 ${authToken} #iwList 192.168.1.1 8080 wlan1 ${authToken} adoles: