Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#!/bin/bash ###################################################################### #Copyright (C) 2023 Kris Occhipinti #https://filmsbykris.com #This program is free software: you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation version 3 of the License. #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. #You should have received a copy of the GNU General Public License #along with this program. If not, see
. ###################################################################### which upnpc >/dev/null || sudo apt install miniupnpc function getinput(){ read -p "Internal Port: " in_port [[ $in_port ]] || exit read -p "Extertnal Port: " ext_port [[ $ext_port ]] || exit ip="$(ip a|grep inet|grep "[0-9].[0-9].[0-9].[0-9]"|awk '{print $2}'|cut -d\/ -f1|fzf --prompt "Internal IP: ")" [[ $ip ]] || exit openport } function openport(){ [[ $in_port ]] || in_port=$2 [[ $ext_port ]] || ext_port=$3 [[ $ip ]] || ip=$1 echo -n "Opening port $ext_port to port $in_port on $ip..." router="$(ip r | grep default | cut -d " " -f 3)" echo -n "." gateway="$(upnpc -l|grep 'desc:'|awk '{print $2}')" echo "." #open port echo ": $(date +%s):0;upnpc -u $gateway -a $ip $in_port $ext_port tcp" >> $HOME/.zsh_history echo ": $(date +%s):0;upnpc -u $gateway -d $ext_port tcp" >> $HOME/.zsh_history upnpc -u $gateway -a $ip $in_port $ext_port tcp exit } function closeport(){ command="$(grep upnpc ~/.zsh_history|grep '\-d'|grep -v 'grep'|cut -d\; -f2|fzf)" echo "Closing Port" $command exit } [[ "$1" == "close" ]] && closeport [[ $# == 3 ]] && openport $* getinput
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)