ip_country_lookup 1.0.3 copy "ip_country_lookup: ^1.0.3" to clipboard
ip_country_lookup: ^1.0.3 copied to clipboard

A Flutter package for retrieving country information based on a user's public IP address.

Ip_Country_Lookup #

A Flutter package for retrieving country information based on a user's public IP address.

Features #

Get the user's public IP address. Retrieve country information such as country code, country name, and ISP (Internet Service Provider).

In App Screenshots #

Getting started #

To use this package, follow the steps below:

Add the package to your pubspec.yaml file:


dependencies:
  ip_country_lookup: ^1.0.0

Import the package in your Dart file:


import 'package:ip_country_lookup/ip_country_lookup.dart';

Get the user's public IP address:


String publicIp = await IpCountryLookup().getUserIpAddress();

Retrieve country information using the user's IP address:


IpCountryData countryData = await IpCountryLookup().getIpLocationData();

Note: Ensure that you have the necessary permissions and internet connectivity to retrieve the user's IP address and access the country information.

Example #


import 'package:flutter/material.dart';
import 'package:ip_country_lookup/ip_country_lookup.dart';
import 'package:ip_country_lookup/models/ip_country_data_model.dart';

void main(List<String> args) {
  runApp(const IpCountryLookupExampleApp());
}

class IpCountryLookupExampleApp extends StatelessWidget {
  const IpCountryLookupExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MainScreen(),
    );
  }
}

class MainScreen extends StatefulWidget {
  const MainScreen({super.key});

  @override
  State<MainScreen> createState() => _MainScreenState();
}

class _MainScreenState extends State<MainScreen> {
  bool isDataLoaded = false;
  bool isLoading = false;
  IpCountryData? countryData;
  String? usersPublicIpAddress;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text(
          "IP Country Lookup",
        ),
      ),
      body: SizedBox(
        width: MediaQuery.of(context).size.width,
        child: isLoading
            ? const Center(
                child: CircularProgressIndicator(),
              )
            : Column(
                mainAxisAlignment: MainAxisAlignment.center,
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [
                  isDataLoaded
                      ? Padding(
                          padding: const EdgeInsets.symmetric(horizontal: 44),
                          child: Column(
                            children: [
                              Text(
                                "Country name: ${countryData!.country_name.toString()}",
                              ),
                              Text(
                                "Country code: ${countryData!.country_code.toString()}",
                              ),
                              const SizedBox(
                                height: 30,
                              ),
                              const Divider(),
                              const SizedBox(
                                height: 30,
                              ),
                              Text(
                                "Users public ip: ${countryData!.ip.toString()}",
                              ),
                              Text(
                                "Users ISP: ${countryData!.isp.toString()}",
                              ),
                              const SizedBox(
                                height: 30,
                              ),
                            ],
                          ),
                        )
                      : const SizedBox.shrink(),
                  ElevatedButton(
                    onPressed: () async {
                      setState(() {
                        isLoading = true;
                      });
                      countryData = await IpCountryLookup().getIpLocationData();
                      setState(() {
                        isLoading = false;
                        isDataLoaded = true;
                      });
                    },
                    child: const Text(
                      "Get country data from IP",
                    ),
                  ),
                ],
              ),
      ),
    );
  }
}

Support #

For any issues, questions, or feature requests, please email me at: afridi.khondakar@gmail.com.

Conclusion #

The ip_country_lookup package allows you to easily retrieve a user's public IP address and obtain country information such as the country code, country name, and ISP. It simplifies the process of identifying the user's location based on their IP address, enabling you to build geolocation-aware applications with ease.

12
likes
140
pub points
88%
popularity

Publisher

unverified uploader

A Flutter package for retrieving country information based on a user's public IP address.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

dio, flutter

More

Packages that depend on ip_country_lookup