"/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.