{"id":26512950,"url":"https://github.com/multix0/ipapi-dart","last_synced_at":"2025-08-16T22:32:40.094Z","repository":{"id":283572103,"uuid":"952221206","full_name":"MultiX0/ipapi-dart","owner":"MultiX0","description":" Dart bindings for ipquery.io | A free and performant ip address API ","archived":false,"fork":false,"pushed_at":"2025-03-21T00:20:49.000Z","size":15,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-16T22:32:37.368Z","etag":null,"topics":["api","api-client","dart","dart-library","dart-package","dart2","dartlang","ip","proxy-detection","vpn-detection"],"latest_commit_sha":null,"homepage":"https://ipquery.io","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MultiX0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-20T23:38:31.000Z","updated_at":"2025-08-16T05:08:05.000Z","dependencies_parsed_at":"2025-03-21T00:31:08.213Z","dependency_job_id":null,"html_url":"https://github.com/MultiX0/ipapi-dart","commit_stats":null,"previous_names":["multix0/ipapi-dart"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MultiX0/ipapi-dart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MultiX0%2Fipapi-dart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MultiX0%2Fipapi-dart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MultiX0%2Fipapi-dart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MultiX0%2Fipapi-dart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MultiX0","download_url":"https://codeload.github.com/MultiX0/ipapi-dart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MultiX0%2Fipapi-dart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270781195,"owners_count":24643804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-client","dart","dart-library","dart-package","dart2","dartlang","ip","proxy-detection","vpn-detection"],"created_at":"2025-03-21T04:19:11.396Z","updated_at":"2025-08-16T22:32:40.072Z","avatar_url":"https://github.com/MultiX0.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPApi Dart\n\nA lightweight Dart package for retrieving IP address information using the [IPQuery.io](https://ipquery.io) API service.\n\n## Features\n\n- Retrieve detailed information about any IP address\n- Get your own IP address\n- Access location data (country, city, coordinates)\n- Access ISP/network information\n- Get risk assessment data (VPN detection, proxy detection, Tor exit node detection)\n- Simple API with Future-based calls\n- Built with Dio for efficient HTTP requests\n\n## Installation\n\nAdd this package to your `pubspec.yaml`:\n\n```yaml\ndependencies:\n  ipapi_dart: ^0.0.1\n```\n\nThen run:\n\n```bash\ndart pub get\n```\n\n## Usage\n\n### Import the package\n\n```dart\nimport 'package:ipapi_dart/ipapi_dart.dart';\n```\n\n### Getting your own IP address\n\n```dart\nString myIp = await IPInfo.QueryOwnIP();\nprint('My IP address is: $myIp');\n```\n\n### Getting information about a specific IP\n\n```dart\nIpInfoModel ipInfo = await IPInfo.queryIP('1.1.1.1');\n\n// Access information from the model\nprint('IP: ${ipInfo.ip}');\nprint('Country: ${ipInfo.location.country}');\nprint('City: ${ipInfo.location.city}');\nprint('ISP: ${ipInfo.isp.isp}');\n```\n\n### Complete example\n\n```dart\nimport 'package:ipapi_dart/ipapi_dart.dart';\n\nvoid main() async {\n  try {\n    // Get your own IP\n    String myIp = await IPInfo.QueryOwnIP();\n    print('My IP address is: $myIp');\n    \n    // Query information about a specific IP\n    IpInfoModel cloudflareInfo = await IPInfo.queryIP('1.1.1.1');\n    \n    // Print location information\n    print('Country: ${cloudflareInfo.location.country} (${cloudflareInfo.location.countryCode})');\n    print('City: ${cloudflareInfo.location.city}, ${cloudflareInfo.location.state}');\n    print('Coordinates: ${cloudflareInfo.location.latitude}, ${cloudflareInfo.location.longitude}');\n    \n    // Print risk assessment\n    print('VPN: ${cloudflareInfo.risk.isVpn ? 'Yes' : 'No'}');\n    print('Proxy: ${cloudflareInfo.risk.isProxy ? 'Yes' : 'No'}');\n    print('Risk Score: ${cloudflareInfo.risk.riskScore}/10');\n  } catch (e) {\n    print('Error: $e');\n  }\n}\n```\n\n## API Response Model\n\nThe API returns data in the following structure:\n\n```json\n{\n  \"ip\": \"1.1.1.1\",\n  \"isp\": {\n    \"asn\": \"AS13335\",\n    \"org\": \"Cloudflare, Inc.\",\n    \"isp\": \"Cloudflare, Inc.\"\n  },\n  \"location\": {\n    \"country\": \"United States\",\n    \"country_code\": \"US\",\n    \"city\": \"Los Angeles\",\n    \"state\": \"California\",\n    \"zipcode\": \"90001\",\n    \"latitude\": 34.0522,\n    \"longitude\": -118.2437,\n    \"timezone\": \"America/Los_Angeles\",\n    \"localtime\": \"2025-03-20T21:25:31\"\n  },\n  \"risk\": {\n    \"is_mobile\": false,\n    \"is_vpn\": false,\n    \"is_tor\": false,\n    \"is_proxy\": false,\n    \"is_datacenter\": true,\n    \"risk_score\": 1\n  }\n}\n```\n\n## Model Structure\n\n### IpInfoModel\n\nMain class that contains all IP information:\n\n```dart\nclass IpInfoModel {\n  final String ip;\n  final ISPInfoModel isp;\n  final LocationInfoModel location;\n  final RiskInfoModel risk;\n  \n  // Constructor and fromMap methods\n}\n```\n\n### LocationInfo\n\nContains geographical information:\n\n```dart\nclass LocationInfoModel {\n  final String country;\n  final String country_code;\n  final String city;\n  final String state;\n  final String zipcode;\n  final double latitude;\n  final double longitude;\n  final String timezone;\n  final String localtime;\n  \n  // Constructor and fromMap methods\n}\n```\n\n### IspInfo\n\nContains network provider information:\n\n```dart\nclass ISPInfoModel {\n  final String asn;\n  final String org;\n  final String isp;\n  \n  // Constructor and fromMap methods\n}\n```\n\n### RiskInfo\n\nContains security and risk information:\n\n```dart\nclass RiskInfoModel {\n  final bool is_mobile;\n  final bool is_vpn;\n  final bool is_tor;\n  final bool is_proxy;\n  final bool isDatacenter;\n  final int risk_score;\n  \n  // Constructor and fromMap methods\n}\n```\n\n## Error Handling\n\nThe package throws exceptions when API calls fail. Always wrap API calls in try-catch blocks:\n\n```dart\ntry {\n  IpInfoModel ipInfo = await IPInfo.queryIP('1.1.1.1');\n  // Process data\n} catch (e) {\n  // Handle error\n  print('Error: $e');\n}\n```\n\n## API Limits\n\nThis package uses the [IPQuery.io](https://ipquery.io) service, which may have rate limits or require an API key for extended usage. Please check their website for the latest information on usage limits.\n\n## Credits\n\nThis package is a Dart wrapper for the [IPQuery.io](https://ipquery.io) API. The original API service is maintained by [IPQwery](https://github.com/ipqwery).\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultix0%2Fipapi-dart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultix0%2Fipapi-dart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultix0%2Fipapi-dart/lists"}