Allora, ti rispondo con quel che ne so di java su argomento simile: in java se chiedi gli indirizzi e nomi delle interfacce Network ottieni sempre gli indirizzi locali, il che chiaramente non è detto (anzi difficilmente) corrisponde all'indirizzo ip che ti viene assegnato in internet. Per risolvere (o meglio aggirare) si sceglie una di quelle pagine online che ti dicono il tuo indirizzo ip e si fa il parsing dell'indirizzo così come appare nel codice html della pagina. In altre parole, in java si lavora di socket. Non so se PHP abbia un modo diverso per aggirare il problema, tramite qualche variabile o che (ma da quel che dici no), per cui lavorerei di socket anche in php
Siti che danno l'indirizzo in internet della tua macchina sono ad esempio
http://www.ip-adress.com/
http://www.myip.dk/
e migliaia di altri.
Saluti.