code: func StringToIPHookFunc() DecodeHookFunc {
  	return func(
  		f reflect.Type,
  		t reflect.Type,
  		data interface{}) (interface{}, error) {
  		if f.Kind() != reflect.String {
  			return data, nil
  		}
  		if t != reflect.TypeOf(net.IP{}) {
  			return data, nil
  		}
  
  		// Convert it by parsing
  		ip := net.ParseIP(data.(string))
  		if ip == nil {
  			return net.IP{}, fmt.Errorf("failed parsing ip %v", data)
  		}
  
  		return ip, nil
  	}
  }
docs: // StringToIPHookFunc returns a DecodeHookFunc that converts
  // strings to net.IP