Connecting arduino to c# gui

I'm trying to access my arduino from a c# program over internet.. I mean that I want to access it from external networks not only (LAN) , I'm using Ethernet shield to connect the arduino to the Internet . I could access the arduino with a TCP program on LAN , can this program help me to access over external networks too ?

you can run a TCP or UDP server on the arduino listening on specified port
to access it from the external internet your set up your modem to port forward packets arriving for that port to the corresponding PC