huin/goupnp

Discover UPnP as not active if UPnP not ON in device

Closed this issue · 4 comments

Most google fiber routers come with their UPnP turned off by default. I am still a newbie and trying to figure out if it is possible to know that my router indeed has UPnP but currently turned off. As opposed to just not finding it, and not knowing that my router has such capabilities.

huin commented

One aspect of your question/issue that I'm unclear about is if this is to detect UPnP on your own specific router, or any Google Fiber router in general (or any router device in general). I.e what is the use-case: working on code that works in a very specific environment (i.e your own local network) or LANs in general. Given that presumably you have gone through your own router's settings to check UPnP status, I'm going to assume that you're asking about more general cases.

I'm not aware that there is any way for a UPnP client to be able to tell the difference between a device that has UPnP disabled versus a device that is not capable of it.

The only difference that I'm aware of is generally in the device settings, usually behind a very device-specific user interface (typically a HTTP/HTML user interface with authentication).

Unless there's evidence to suggest a general way to tell the difference, then I'm afraid that I'll have to call this both out of scope and infeasible for a UPnP client library for the reasons presented above.

@huin , i am asking about the general use case where router UPnP is by default turned OFF.
I struggled with getting the code to work until I figured out that I needed to turn UPnP ON first in the settings.
See link below on third paragraph.
https://support.google.com/fiber/answer/3658681?hl=en .

Everything works by the way. It is just the inconvenience of not knowing.

huin commented

Unfortunately there's not really anything that can be done at the UPnP level here, sorry. In either case all that is seen by a UPnP (and HTTPU in particular) is the lack of a response to a broadcast query. Any code using a UPnP client library (such as goupnp) can take this lack of response and bubble up a message to a user to ask if they have enabled UPnP on their device (or take some other approach that doesn't require UPnP to achieve their aims).

Thanks, I am already generating a similar message when there is no discovered UPnP device. I will be on the lookout for anything that comes close to that.