text: #! /usr/bin/python3
  # MiniUPnP project
  # Author : Thomas Bernard
  # This Sample code is public domain.
  # website : http://miniupnp.tuxfamily.org/
  
  # import the python miniupnpc module
  import miniupnpc
  import sys
  
  # create the object
  u = miniupnpc.UPnP()
  print('inital(default) values :')
  print(' discoverdelay', u.discoverdelay)
  print(' lanaddr', u.lanaddr)
  print(' multicastif', u.multicastif)
  print(' minissdpdsocket', u.minissdpdsocket)
  u.discoverdelay = 200;
  #u.minissdpdsocket = '../minissdpd/minissdpd.sock'
  # discovery process, it usualy takes several seconds (2 seconds or more)
  print('Discovering... delay=%ums' % u.discoverdelay)
  print(u.discover(), 'device(s) detected')
  # select an igd
  try:
    u.selectigd()
  except Exception as e:
    print('Exception :', e)
    sys.exit(1)
  # display information about the IGD and the internet connection
  print('local ip address :', u.lanaddr)
  print('external ip address :', u.externalipaddress())
  print(u.statusinfo(), u.connectiontype())
  
  #print u.addportmapping(64000, 'TCP',
  #                       '192.168.1.166', 63000, 'port mapping test', '')
  #print u.deleteportmapping(64000, 'TCP')
  
  port = 0
  proto = 'UDP'
  # list the redirections :
  i = 0
  while True:
  	p = u.getgenericportmapping(i)
  	if p==None:
  		break
  	print(i, p)
  	(port, proto, (ihost,iport), desc, c, d, e) = p
  	#print port, desc
  	i = i + 1
  
  print(u.getspecificportmapping(port, proto))
  
  