https://github.com/eyedeekay/i2prpcapi_aliases
curl commands as functions for interacting with the i2pcontrol api, because I'm too tired to keep working on the go version all night.
https://github.com/eyedeekay/i2prpcapi_aliases
bash-aliases i2p
Last synced: 9 months ago
JSON representation
curl commands as functions for interacting with the i2pcontrol api, because I'm too tired to keep working on the go version all night.
- Host: GitHub
- URL: https://github.com/eyedeekay/i2prpcapi_aliases
- Owner: eyedeekay
- Created: 2018-04-04T05:44:50.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-05T21:25:12.000Z (about 8 years ago)
- Last Synced: 2025-01-03T00:13:17.534Z (over 1 year ago)
- Topics: bash-aliases, i2p
- Language: Shell
- Size: 28.3 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# i2prpcapi_aliases
curl commands as functions for interacting with the i2pcontrol api, because I'm
too tired to keep working on the go version all night.
## Shell function library for gathering information from the i2pcontrol bridge.
This can pretty much be used as a library for use in bash or other shells. More
usage information will show up here soon.
## Installation:
sudo make install
will place the scripts in /usr/lib/i2prpccurl/ and the settings in
/etc/i2prpc/i2prpc.conf.
sudo make remove
will remove the scripts and settings.
### /usr/lib/i2prpccurl/aliases.sh
#### Line-By-Line:
##### Assure the i2pcontrol_host and i2pcontrol_port environment variables are set
if [ -z "$i2pcontrol_host" ]; then
i2pcontrol_host="127.0.0.1"
fi
if [ -z "$i2pcontrol_port" ]; then
i2pcontrol_port="7650"
fi
##### Authenticate to the rpc interface with a password method wrapper
authenticate(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"Authenticate\",
\"params\":{
\"API\": 1,
\"Password\": \"$2\"}
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' |
tr -d '"' | sed 's|result:||g' | tr ':' '=' | sed '/^\s*$/d'
}
##### Exportable token function
token(){
authenticate "$1" "$2" | grep "Token" | sed 's|Token=|export Token=|g'
}
##### i2pecho (Echo in i2pcontrol) method wrapper
i2pecho(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"Echo\",
\"params\":{
\"Token\": \"$Token\",
\"Echo\": \"$1\"}
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' |
tr -d '"' | sed 's|result:||g' | tr ':' '=' | sed '/^\s*$/d'
}
##### i2pcontrol (I2PControl in i2pcontrol) method wrapper
i2pcontrol(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"I2PControl\",
\"params\":{
\"$1\": \"$2\",
\"Token\": \"$Token\"}
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' |
tr -d '"' | sed 's|result:||g' | tr ':' '=' | sed '/^\s*$/d'
}
##### Set the i2pcontrol password
password(){
i2pcontrol "i2pcontrol.password" "$1"
}
##### Export a changed i2pcontrol password(WIP)
exportpassword(){
i2pcontrol "i2pcontrol.password" "$1" | sed 's/^/export /'
}
##### routerinfo (RouterInfo in i2pcontrol) method wrapper
routerinfo(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"RouterInfo\",
\"params\":{
\"$1\": \"null\",
\"Token\": \"$Token\"}
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' |
tr -d '"' | sed 's|result:||g' | tr ':' '=' | sed '/^\s*$/d' | grep -v 'id='
}
##### show router status
routerstatus(){
routerinfo "i2p.router.status"
}
##### exportable router status
exportrouterstatus(){
routerinfo "i2p.router.status" | sed 's/^/export /'
}
routerupstime(){
routerinfo "i2p.router.uptime"
}
exportrouterupstime(){
routerinfo "i2p.router.uptime" | sed 's/^/export /'
}
routerversion(){
routerinfo "i2p.router.version"
}
exportrouterversion(){
routerinfo "i2p.router.version" | sed 's/^/export /'
}
routernetbwinbound1s(){
routerinfo "i2p.router.net.bw.inbound.1s"
}
exportrouternetbwinbound1s(){
routerinfo "i2p.router.net.bw.inbound.1s" | sed 's/^/export /'
}
routernetbwinbound15s(){
routerinfo "i2p.router.net.bw.inbound.15s"
}
exportrouternetbwinbound15s(){
routerinfo "i2p.router.net.bw.inbound.15s" | sed 's/^/export /'
}
routernetbwoutbound1s(){
routerinfo "i2p.router.net.bw.outbound.1s"
}
exportrouternetbwoutbound1s(){
routerinfo "i2p.router.net.bw.outbound.1s" | sed 's/^/export /'
}
routernetbwoutbound15s(){
routerinfo "i2p.router.net.bw.outbound.15s"
}
exportrouternetbwoutbound15s(){
routerinfo "i2p.router.net.bw.outbound.15s" | sed 's/^/export /'
}
routernetstatus(){
routerinfo "i2p.router.net.status"
}
exportrouternetstatus(){
routerinfo "i2p.router.net.status" | sed 's/^/export /'
}
routernetstatus(){
routerinfo "i2p.router.net.status"
}
exportrouternetstatus(){
routerinfo "i2p.router.net.status" | sed 's/^/export /'
}
routernetdbactivepeers(){
routerinfo "i2p.router.netdb.activepeers"
}
exportrouternetdbactivepeers(){
routerinfo "i2p.router.netdb.activepeers" | sed 's/^/export /'
}
routernetdbfastpeers(){
routerinfo "i2p.router.netdb.fastpeers"
}
exportrouternetdbfastpeers(){
routerinfo "i2p.router.netdb.fastpeers" | sed 's/^/export /'
}
routernetdbhighcapacitypeers(){
routerinfo "i2p.router.netdb.highcapacitypeers"
}
exportrouternetdbhighcapacitypeers(){
routerinfo "i2p.router.netdb.highcapacitypeers" | sed 's/^/export /'
}
routernetdbisreseeding(){
routerinfo "i2p.router.netdb.isreseeding"
}
exportrouternetdbisreseeding(){
routerinfo "i2p.router.netdb.isreseeding" | sed 's/^/export /'
}
routernetdbknownpeers(){
routerinfo "i2p.router.netdb.knownpeers"
}
exportrouternetdbknownpeers(){
routerinfo "i2p.router.netdb.knownpeers" | sed 's/^/export /'
}
routermanager(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"RouterManager\",
\"params\":{
\"Token\": $Token,
\"$1\": \"null\"}
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' |
tr -d '"' | sed 's|result:||g' | tr ':' '=' | sed '/^\s*$/d'
}
routerreseed(){
routermanager "Reseed"
}
routershutdown(){
routermanager "Shutdown"
}
routershutdowngraceful(){
routermanager "ShutdownGraceful"
}
networksetting(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"NetworkSetting\",
\"params\":{
\"Token\": $Token,
\"$1\": $2 }
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' | tr -d '"' | sed 's|result:||g' | tr ':' '=' |
sed '/^\s*$/d'
}
routernetbwin(){
if [ -z "$1" ]; then
Value="null"
else
Value="$1"
fi
networksetting "i2p.router.net.bw.in" "$Value"
}
exportrouternetbwin(){
routernetbwin $1 | sed 's/^/export /'
}
routernetbwout(){
if [ -z "$1" ]; then
Value="null"
else
Value="$1"
fi
networksetting "i2p.router.net.bw.out" "$Value"
}
routernetbwout(){
routernetbwout $1 | sed 's/^/export /'
}
clientservicesinfo(){
/usr/bin/curl -s -k --data-binary "{
\"jsonrpc\":\"2.0\",
\"id\":\"$1\",
\"method\":\"ClientServicesInfo\",
\"params\":{
\"Token\": $Token,
\"$1\": \"null\"}
}" -H 'content-type:application/json-rpc;' "https://$i2pcontrol_host:$i2pcontrol_port/" 2>&1 |
tr ',{}' '\n' | tr -d '"' | sed 's|result:||g' | tr ':' '=' |
sed '/^\s*$/d'
}
tunnelinfo(){
clientservicesinfo "I2PTunnel" | grep -v "I2PTunnel" | grep -v "client" |
perl -p -e 's/=\n/=/' | sed 's|address=|"|g' |
sed 's|.b32.i2p|.b32.i2p"|g' | grep -v jsonrpc | tr -d '-'
}
exporttunnelinfo(){
tunnelinfo | sed 's/^/export /'
}
socksinfo(){
clientservicesinfo "SOCKS" | grep -v "SOCKS" | grep -v jsonrpc
}
exportsocksinfo(){
socksinfo | sed 's/^/export /'
}
saminfo(){
clientservicesinfo "SAM" | grep -v "SAM" | grep -v jsonrpc
}
exportsaminfo(){
saminfo | sed 's/^/export /'
}
bobinfo(){
clientservicesinfo "BOB" | grep -v "BOB" | grep -v jsonrpc
}
exportbobinfo(){
bobinfo | sed 's/^/export /'
}
i2pcpinfo(){
clientservicesinfo "I2CP" | grep -v "I2CP" | grep -v jsonrpc
}
exporti2pcpinfo(){
i2pcpinfo | sed 's/^/export /'
}