Upnp

From miki
Jump to navigation Jump to search

References

Install

  • Download miniupnpc package
  • untar it, compile and install it:
make
sudo make install

Usage

  • List redirections:
upnpc -l
  • Add a new redirections:
upnpc -a 129.19.3.106 22 9922 TCP     # Let UPNP router forward connections on 9922 to 129.19.3.106:22 (TCP)
  • Get public IP address (i.e. address of the ADSL router):
PUBLICIP=$(upnpc -l|perl -lne 'print for /ExternalIPAddress *= *([0-9]+.[0-9]+.[0-9]+.[0-9]+)/')
Another solution using an external server:
PUBLICIP=$(wget http://automation.whatismyip.com/n09230945.asp -q -O -)
As a sidenote, to get local IP address:
IPETH0=$(ifconfig eth0 | perl -lne 'print for /inet[^0-9]*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/')      # eth0
IPWLAN0IP=$(ifconfig wlan0 | perl -lne 'print for /inet[^0-9]*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/')     # wlan0
IPETH0=$(ip addr show eth0 | perl -lne 'print for /inet[^0-9]*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/')      # Other solution using command ip