I wrote a simple STUN client in C++ for Fire★ which you can see here on github
I ended up writing my own STUN like server called firegreet that Fire★ uses instead of STUN servers.
But I think the STUN client I wrote kind of gives you an idea of what the request looks like underneath in WebRTC implementations. Maybe someone can find it useful.
The demo doesn’t work for me in Chrome or Firefox…
It worked for me in Firefox 35/mac. It showed my local IP right away but Little Snitch blocked the non-standard outbound port for the public IP test.
Setting media.peerconnection.enabled to false in about:config disables this.
Tor Browser Bundle appears to default that setting to false. Thank goodness.