[FIXED] How to perform an http post request to a device behind a router using DDNS & Python


To speed up code prototyping, I would like to provide my laptop address as an endpoint to the http webhook API (base URL) of the website cloud.thethings.network.

For this, I set up ddns with noip.com and connected the tp-link router to noip-account. So now i have sth. Like myneedddns.ddns.com forwarding to my router.

I also set up port forwarding on my router to access my laptop and reserved a static IP for my laptop.
Enter image description here

However, formats like xxx.ddns.com:801 cannot be provided by thethingsstack. From there you can handle how to receive requests in flask or django.

How do you approach my goals?


There are about a thousand ways of doing that.

  1. Use a service like ngrok.com to tunnel directly which in your case is likely the best way.

  2. Use port forwarding on your router (what you are trying to do). This would be done by setting up ddns on your laptop then forwarding whatever port you want to use to whatever port is running the service on your laptop. Note that this requires setting the host on your server to ‘’ and is insecure so cant be used past development.

  3. Create a VPN using a cloud service then forwarding the port. I don’t recommend this but you could create a VPN that would forward the port though this requires that you know a lot about sysadmin, linux, and setting up VPN’s

Here is an article that does a decent job if you want something to follow along to: Meduim article

My advice is to just use ngrok

Answered By – Joshua

Answer Checked By – David Marino (Easybugfix Volunteer)

Leave a Reply

(*) Required, Your email will not be published