1#! /usr/bin/python 2# MiniUPnP project 3# Author : Thomas Bernard 4# This Sample code is public domain. 5# website : http://miniupnp.tuxfamily.org/ 6 7# import the python miniupnpc module 8import miniupnpc 9import sys 10 11# create the object 12u = miniupnpc.UPnP() 13print 'inital(default) values :' 14print ' discoverdelay', u.discoverdelay 15print ' lanaddr', u.lanaddr 16print ' multicastif', u.multicastif 17print ' minissdpdsocket', u.minissdpdsocket 18u.discoverdelay = 200; 19#u.minissdpdsocket = '../minissdpd/minissdpd.sock' 20# discovery process, it usualy takes several seconds (2 seconds or more) 21print 'Discovering... delay=%ums' % u.discoverdelay 22print u.discover(), 'device(s) detected' 23# select an igd 24try: 25 u.selectigd() 26except Exception, e: 27 print 'Exception :', e 28 sys.exit(1) 29# display information about the IGD and the internet connection 30print 'local ip address :', u.lanaddr 31print 'external ip address :', u.externalipaddress() 32print u.statusinfo(), u.connectiontype() 33 34#print u.addportmapping(64000, 'TCP', 35# '192.168.1.166', 63000, 'port mapping test', '') 36#print u.deleteportmapping(64000, 'TCP') 37 38port = 0 39proto = 'UDP' 40# list the redirections : 41i = 0 42while True: 43 p = u.getgenericportmapping(i) 44 if p==None: 45 break 46 print i, p 47 (port, proto, (ihost,iport), desc, c, d, e) = p 48 #print port, desc 49 i = i + 1 50 51print u.getspecificportmapping(port, proto) 52 53