Το κακό είναι ότι θέλει να το κάνει από εφαρμογή winforms και όχι ASP.NET. Οπότε και δεν υπάρχει το Request object.
Πραγματικά η μόνη λύση που βλέπω είναι να χρησιμοποιήσεις κάποιο web-service που θα σου επιστρέφει την εξωτερική ΙΡ του router σου. (Το default gateway απ ότι κατάλαβα δεν σου κάνει γιατί είναι στο τοπικό υποδίκτυο και όχι η Ιντερνετική ΙΡ). Και αυτό γιατί εφ'όσον παίζεις με ΝΑΤ, η ιντερνετική ΙΡ είναι ορατή μόνο από μηχανήματα εκτός του router σου (όπως στην περίπτωση του ASP.NET που σου την στέλνει ο server). Από τα μέσα μηχανήματα βλέπεις μόνο αυτή του τοπικού subnet, ή τα πακέτα της Ινετικής στα οποία όμως έχει ήδη γίνει το translation της Ινετικής στην τοπική.
Η υπηρεσία που αναφέρει ο nsouflis φαίνεται αρκετά καλή.
Σαν πρώτη λύση, μπορείς να χρησιμοποιείς ένα command line και να δώσεις
telnet checkip.dyndns.org 80
Και μετά GET /
Δεν θυμάμαι πως ακριβώς γίνεται αλλά κάπως έτσι είναι.
Σου γυρνάει χύμα τον κώδικα HTML λογικά, οπότε μπορείς να απομονώσεις την ΙΡ.
Άν είσαι και πίσω από Proxy φυσικά δεν θα σου παίξει έτσι. Δοκίμασε να αλλάξεις την πόρτα σε αυτή του proxy, αλλά δεν είναι σίγουρο ότι θα πάρεις απάντηση γιατί πολλοί proxy δεν επιτρέπουνε απευθείας αιτήσεις....
Simple Photography