lasizoillo wrote:
I don't know if this is Deluge's method, but sounds interesting: http://samy.pl/natpin/?port=80
Hm. That's another kind of hack, and it didn't work for me.
If you don't want see deluge code, maybe you want use a sniffer. Wireshark is great for these things ;-) http://www.wireshark.org/
Wireshark! What a nice tool that wasn't on my radar before. Thanks for this, it really helped. Using Wireshark, I found out that both Bittorrent and Deluge talk to the gateway via UPNP for opening the port. It all works over HTTP, so it's really easy to see what's going on. These are the steps: 1. Find out the gateway IP (192.168.0.1 or some such) 2. GET http://{gateway}/desc.xml. This makes the gateway print some information about itself (make & model and so on). Not sure why this is needed. Maybe the protocol is different for different gateways. Or to make sure that there is a gateway at all. Or maybe there is some detail information in there that is needed for the next steps. 3. Also sent to the gateway: POST /upnp/control3 with some XML/SOAP data containing a command called AddPortMapping. It looks really easy, like you could reprogram this in a few lines, with a SOAP library, or even just manual XML. There's also a command called DeletePortMapping for proper cleanup. And it seems like Twisted may actually not even be involved in Deluge's port opening code. Ah. I'm really quite satisfied. I heard that there are tricks to open firewalls (Skype's been doing this for ages), but I didn't know that there is such an elegant solution. Cheers and thanks for the hints, Stefan