getIPAddress function

Future getIPAddress({
  1. IPAddressFormat ipAddressFormat = IPAddressFormat.string,
  2. String defaultErrorMessage = 'Not able to find the IP Address.',
  3. IPAddressVersion ipAddressVersion = IPAddressVersion.v64,
})

Retrieves the public IP address using the ipify API.

Parameters:

  • ipAddressFormat: (Optional) The format in which the IP address should be retrieved, defaults to IPAddressFormat.json.
  • defaultErrorMessage: (Optional) The default error message to return if IP address retrieval fails, defaults to 'Not able to find the IP Address.'.

Returns: A Future containing the IP address in the specified format, or a default error message if retrieval fails.

Implementation

Future<dynamic> getIPAddress({
  IPAddressFormat ipAddressFormat = IPAddressFormat.string,
  String defaultErrorMessage = 'Not able to find the IP Address.',
  IPAddressVersion ipAddressVersion = IPAddressVersion.v64,
}) async {
  try {
    var response = await get(Uri.parse(_getURl(ipAddressVersion)));

    if (ipAddressFormat == IPAddressFormat.json) {
      if (response.statusCode.isSuccessful()) {
        return handleJSONResponse(status: true, value: response.body);
      } else {
        return handleJSONResponse(status: false, value: defaultErrorMessage);
      }
    } else if (ipAddressFormat == IPAddressFormat.string) {
      if (response.statusCode.isSuccessful()) {
        return response.body;
      } else {
        throw defaultErrorMessage;
      }
    }
  } catch (_) {
    if (ipAddressFormat == IPAddressFormat.json) {
      return handleJSONResponse(status: false, value: defaultErrorMessage);
    } else {
      throw defaultErrorMessage;
    }
  }
}