"/localinfo -u" and the Server lookup method get the host and IP information from the server, so if it doesn't work either:
- The server isn't doing it's job
- The server's on your network or
- You're using a script that's changing the local info.
I'm betting on #3, given your first post. Opening a /debug window will show you the /userhost in action.