Upnp: Difference between revisions

From miki
Jump to navigation Jump to search
Line 31: Line 31:
:As a sidenote, to get local IP address:
:As a sidenote, to get local IP address:
<source lang="bash">
<source lang="bash">
IPETH0=$(ifconfig eth0 | perl -lne 'print for /inet addr:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/') # eth0
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 addr:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/') # wlan0
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
</source>
</source>

Revision as of 20:18, 23 July 2011

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 9922 22 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