Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- TRANSUSER=your_transmission_username
- TRANSPASS=your_transmission_password
- TRANSHOST=192.168.x.xx
- error( )
- {
- echo "$@" 1>&2
- exit 1
- }
- error_and_usage( )
- {
- echo "$@" 1>&2
- usage_and_exit 1
- }
- usage( )
- {
- echo "Usage: `dirname $0`/$PROGRAM"
- }
- usage_and_exit( )
- {
- usage
- exit $1
- }
- version( )
- {
- echo "$PROGRAM version $VERSION"
- }
- port_forward_assignment( )
- {
- echo 'Loading port forward assignment information...'
- if [ "$(uname)" == "Linux" ]; then
- client_id=`head -n 100 /dev/urandom | sha256sum | tr -d " -"`
- fi
- if [ "$(uname)" == "FreeBSD" ]; then
- client_id=`head -n 100 /dev/urandom | shasum -a 256 | tr -d " -"`
- fi
- json=`curl "http://209.222.18.222:2000/?client_id=$client_id" 2>/dev/null`
- if [ "$json" == "" ]; then
- echo Port forwarding is already activated on this connection, has expired, or you are not connected to a PIA region that supports port forwarding
- exit 0
- fi
- echo server returned $json
- #trim VPN forwarded port from JSON
- PORT=$(echo $json | awk 'BEGIN{r=1;FS="[{}\":]+"} /port/{r=0; print $3} END{exit r}')
- echo if successful, trimmed port is:$PORT
- #change transmission port on the fly
- transmission-remote $TRANSHOST --auth $TRANSUSER:$TRANSPASS -p "$PORT"
- echo remember to run no longer than 2 mins after reconnecting/connecting to vpn server.
- }
- EXITCODE=0
- PROGRAM=`basename $0`
- VERSION=2.1
- while test $# -gt 0
- do
- case $1 in
- --usage | --help | -h )
- usage_and_exit 0
- ;;
- --version | -v )
- version
- exit 0
- ;;
- *)
- error_and_usage "Unrecognized option: $1"
- ;;
- esac
- shift
- done
- port_forward_assignment
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement