Comments (1)
Unfortunately not within the NAT-PMP or uPnP spec. The API you're looking at returns whatever the device uses as it's external IP address.
In your case it sounds like you're double-NATd, which means the router you call "routeb" is getting assigned an "external" address which is as actually just one of RouteA's internal addresses.
While you can implement your own "GetExternalIPAddress" by parsing data from sites like whatismyipaddress.com, it won't be much use from a port forwarding perspective.
If you connect to RouteB then you'll only be able to forward ports between RouteB and RouteA. You won't be able to forward ports automatically between RouteA and the actual internet.
Typically the way to solve this is to put your ISP provided router into "Bridge" mode. This disables all advanced networking functionality and passes through all connections to the device connected to the primary Ethernet port - in your case it would be RouteB. That device is then responsible for DHCP, port forwarding, etc, and then you sidestep all the complications of a double-NAT.
LMK if you need anything else or I've misunderstood the issue.
from mono.nat.
Related Issues (16)
- Unable to connect to the external server HOT 1
- How to use it?) HOT 11
- Unable to create any port mapping. HOT 27
- Add support for Port Control Protocol
- Issue with UpnpSearcher.cs HOT 15
- Replace HttpWebRequest with HttpClient HOT 1
- Dot net foundation induction HOT 2
- Unknown message returned when deleting a mapping. HOT 7
- Creating a port map does not error on duplicate mappings
- Device.CreatePortMapAsync(Mapping) creates a deadlock HOT 2
- Router as mesh repeater returns empty external IP HOT 1
- [Feature Request] Expose ISearcher and the searcher types or something similar publicly for DI (among other things)
- Port mapping not working until router reload
- Documentation???? HOT 1
- Multi-targeting fork HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mono.nat.