in reply to UPnP - port forward through a router?

Wow. Out of curiosity, I clicked through the docs a little. If you ever figure this out, please consider writing a mini-tutorial for the tutorial section or as a meditation. There's a lot of stuff to look at in that dist.

Personally, I'm curious about using this stuff to write a UPnP server that has a few more features than igd.

Is it the case that dd-wrt doesn't do UPnP and you wish to add it with perl? or you wish to access the UPnP that dd-wrt has from XP? Either way, I'd be somewhat surprised if it wasn't built into both.

-Paul

  • Comment on Re: UPnP - port forward through a router?

Replies are listed 'Best First'.
Re^2: UPnP - port forward through a router?
by ethrbunny (Monk) on Oct 09, 2007 at 13:13 UTC
    Is it the case that dd-wrt doesn't do UPnP and you wish to add it with perl? or you wish to access the UPnP that dd-wrt has from XP? Either way, I'd be somewhat surprised if it wasn't built into both.

    From the dd-wrt docs it appears that UPnP is built in. Im trying to figure out the logistics of getting from a perl script out through the XP firewall and then out through the router. For some reason I think this is do-able. It may be folly though.

    Here's a bit from the dd-wrt docs: http://www.dd-wrt.com/wiki/index.php/Port_Forwarding

      There might be a way to ask XP to ask dd-wrt to DNAT the port on your behalf... Otherwise, it appears Net::UPnP is designed to do what you're looking to do. It's just a matter of navigating that documentation.

      It seems you want to make a control point, somehow locate the devices, and then issue a postaction. I'm fuzzy on the details, but I bet it looks something like this:

      use Net::UPnP::ControlPoint; my $obj = Net::UPnP::ControlPoint->new(); my @dev_list = $obj->search(st =>'????', mx => 3); my $service = $dev->getservicebyname('?????'); $service->postaction('????', { ??? => ???});

      -Paul

        I tried running the 'search' but it didn't turn up the router. The XP firewall has the UPnP exceptions enabled so that shouldn't be blocking it.

        I think my next step is to try to create a new 'service' and see how the various players behave.