clientip() now returns an int, so error handling is simpler.