32 lines
760 B
Python
32 lines
760 B
Python
|
|
||
|
import asyncio
|
||
|
from aioupnp.upnp import UPnP
|
||
|
|
||
|
async def main():
|
||
|
upnp = await UPnP.discover()
|
||
|
print(dir(upnp))
|
||
|
print('gateway=', upnp.gateway, upnp.gateway_address, upnp.lan_address)
|
||
|
print(await upnp.get_external_ip())
|
||
|
port = 40009
|
||
|
while port < 41000:
|
||
|
x = await upnp.get_specific_port_mapping(40009, 'TCP')
|
||
|
if len(x) == 0:
|
||
|
print(port, 'port available')
|
||
|
break
|
||
|
else:
|
||
|
print(port, 'port occupied')
|
||
|
port += 1
|
||
|
|
||
|
print("adding a port mapping")
|
||
|
|
||
|
x = await upnp.add_port_mapping(port, 'TCP', 8999, '192.168.1.8', 'test mapping')
|
||
|
print(8999, '-->', port)
|
||
|
print('x=', x, await upnp.get_redirects())
|
||
|
|
||
|
# print("deleting the port mapping")
|
||
|
# await upnp.delete_port_mapping(51234, 'TCP')
|
||
|
# print(await upnp.get_redirects())
|
||
|
|
||
|
|
||
|
asyncio.run(main())
|