@override Future<String?> getPublicIp() async { try { final publicIp = await methodChannel.invokeMethod<String>('getPublicIp'); return publicIp; } catch (e) { return "cannnot get public ip"; } }