Usa Watch-IP con Flutter y Dart
watch_ip_sdk (pub.dev, v0.1.2) envuelve GET /v1/geo para apps de Flutter y Dart puro, construido sobre package:http en lugar de un cliente exclusivo de la biblioteca estándar, para que también funcione en Flutter web.
Instalación
Requiere Dart 3.0+ o cualquier canal estable actual de Flutter. Depende de package:http: una excepción deliberada al enfoque sin dependencias de los demás SDK, ya que el HttpClient de dart:io no está disponible en Flutter web.
Flutter
flutter pub add watch_ip_sdkInicio rápido
Una compilación de Flutter web ejecutándose en una pestaña real del navegador envía Origin correctamente por sí sola. Una compilación nativa para iOS/Android/escritorio, o Dart puro en un servidor, no lo hace: pasa origin explícitamente en ese caso. Este SDK solo necesita la clave publicable; nunca incluyas una clave secreta en una app distribuida.
Dart
import 'package:watch_ip_sdk/watch_ip_sdk.dart';
final client = WatchIP('wip_pub_xxxxxxxx');
final geo = await client.getGeo();
print('${geo.country} ${geo.city} ${geo.timezone}');Manejo de errores y tiempos de espera
Cada falla lanza un WatchIPError con un status y un code estable. Una solicitud que no se complete dentro de timeout lanza uno con code network_error.
Dart
try {
final geo = await client.getGeo(timeout: const Duration(seconds: 5));
} on WatchIPError catch (e) {
print('${e.code} ${e.status} ${e.message}');
}Lo que este SDK no cubre
Este paquete solo llama a GET /v1/geo. Todavía no hay ningún cliente en Dart para IP lookup, validación de correo o comprobaciones de riesgo: llámalos directamente con package:http desde tu propio backend, nunca desde la app misma, ya que esos endpoints necesitan una clave secreta. Consulta la guía de autenticación.