Oh... I've played extensively with DirectPlay way back in the days of yor... well, ok maybe not that far back. But it was quite some time ago.

I was creating a multiplayer game called 'Snakes' (tron clone) where I'd use DirectPlay having one player as a host 'lobby' and the others would connect to it.

One of the first issues I came across was just what you mentioned. You need a visible IP address for others connecting/hosting to see you. If both client and server are under the LAN then it should work fine between them, but if you want to access externally the server (at least) needs to be able to capture and use the WAN IP address.

My recommendation is that if you are 'dead set' on using DirectPlay, you'll have to find a way via networking not program code, to give the server access to an external (visible) IP address. DirectPlay just isn't built to be that sophisticated an API.

Also note that DirectPlay only uses TPC not UDP iirc. So it would be slow if you are sending intense amounts of data back and forth. If not, it should be ok.