Das ist sehr wohl ein normales NAT-Verhalten. Habe das hier sowohl an einem Linksys mit originaler Software, einem mit DD-WRT, einem Longshine Router und auch an einem selbstgebauten Router mit IPCop getestet.
Wenn XAMPP auf dem Rechner läuft, kann er die URL z.B. als
http://localhost/seite.php aufrufen. In diesem Fall wird als Remote Address natürlich 127.0.0.1 ausgegeben. Ruft er das mit der IP von seinem Rechner auf, also
http://192.168.1.105/seite.php , dann wird als IP die 192.168.1.105 ausgegeben. Macht er den Aufruf zu seiner öffentlichen IP, dann spricht er ja eigentlich nur den Router an. Bei dem Portforward wird dann natürlich als Quelle der Router angezeigt.
Das ist doch ganz normales NAT (vgl. dazu auch
http://de.wikipedia.org/wiki/Network_Address_Translation#Destination_NAT )
Der Router macht doch dann wieder die Umsetzung, daher Antwortet der XAMPP auch nicht direkt an die öffentliche Adresse sondern erstmal nur an den Router, welcher dann wieder die Umsetzung vornimmt
--- edit ---
Per JS kann man übrigens wohl nicht die IP ermitteln. Wenn dann müsste es eine Kombination aus Java und JS sein. Auch per SSI geht es wohl. Da dies nicht so wirklich praktikabel ist, habe ich noch eine andere Variante gefunden, die es etwa so umsetzt, wie ich es mir auch selber gemacht hätte:
http://www.hashemian.com/tools/visitor-IP.htm
Dabei wird per JS ein Script auf einem anderen Server aufgerufen und so dann per PHP und Remote_Addr die IP ermittelt. Danach wird diese in eine Variable gepackt und kann dann so auch wieder angezeigt werden.
Was willst du eigentlich damit machen? Nur dem Benutzer anzeigen lassen oder in deiner PHP-Seite weiterverarbeiten? Direkt weiterverarbeiten wird nämlich nicht gehen, da die IP ja erst ermittelt wird, wenn die Seite geparst beim Client wieder ankommt. Erst dort führt der Browser das Javascript aus und setzt dann die IP ein. Dein Server kennt die IP also noch nicht. Wenn du die IP nun beim Server brauchst, musst du dir Gedanken machen, wie du die IP nun überträgst (hätte da schon einige Ideen, aber muss dir ja nicht alles vorkauen, zumal ich nicht mal weiß, ob du das dann wirklich brauchst)