的Python 2.7.X貌似有幾個選項:
pytho有個很好的例子n用於GNUPnP的綁定,用於打開路由器here上的端口。 在該例中,租約時間設置爲0,這是無限的。有關add_port的定義,請參見here。
一個簡單的例子可能是:
#! /usr/bin/python
import gupnp.igd
import glib
from sys import stderr
my_ip = YOUR_IP
igd = gupnp.igd.Simple()
igd.external_ip = None
main = glib.MainLoop()
def mep(igd, proto, eip, erip, port, localip, lport, msg):
if port == 80:
igd.external_ip = eip
main.quit()
def emp(igd, err, proto, ep, lip, lp, msg):
print >> stderr, "ERR"
print >> stderr, err, proto, ep, lip, lp, msg
main.quit()
igd.connect("mapped-external-port", mep)
igd.connect("error-mapping-port", emp)
#igd.add_port("PROTO", EXTERNAL_PORT, INTERNAL_IP, INTERNAL_PORT, LEASE_DURATION_IN_SECONDS, "NAME")
igd.add_port("TCP", 80, my_ip, 8080, 86400, "web")
main.run()
P.S:該應用程序將在Mac上進行開發,後來在Windows機器上進行測試。如果有效,它將被編譯並部署到所有平臺。 – DaKnOb
我正在尋找同樣的事情,不幸的是我發現只有[Brisa](http://stackoverflow.com/q/4742001/897968)和[MiniUPNP](http://stackoverflow.com/a/10440556/897968)到目前爲止......肯定必須有一個更新的/緊湊的/純粹的Python實現?任何人? – FriendFX
在此尋找跨平臺解決方案。 –