code: func ip(ctx context.Context) (string, error) {
  	req, err := http.NewRequest("GET", "http://api.ipify.org?format=text", nil)
  	if err != nil {
  		return "", err
  	}
  	req.Header.Set("X-Request-ID", httpx.RequestID(ctx))
  
  	retrier := retry.NewRetrier("ip", retry.DefaultBackOffOpts, retry.RetryOnAnyError)
  	val, err := retrier.Retry(func() (interface{}, error) { return http.DefaultClient.Do(req) })
  	if err != nil {
  		return "", err
  	}
  	resp := val.(*http.Response)
  	defer resp.Body.Close()
  
  	raw, err := ioutil.ReadAll(resp.Body)
  	if err != nil {
  		return "", err
  	}
  
  	return string(raw), nil
  }
docs: // ip returns your ip.