Flutter: Dapatkan alamat IP lokal di Android
Aug 21 2020
Bagaimana cara mendapatkan alamat IP lokal perangkat (Android) saya di Flutter? Ini seharusnya
- alamat IP lokal yang saya dapatkan melalui DHCP oleh router saya ketika terhubung ke WIFI
- alamat IP lokal di jaringan VPN yang ditetapkan oleh server VPN saya (bukan alamat IP global oleh server VPN itu sendiri) jika terhubung ke VPN
- IP global saat terhubung melalui seluler
Jawaban
1 JulianAßmann Sep 02 2020 at 05:53
Saya menyelesaikannya seperti ini untuk saat ini, tetapi jika Anda memiliki solusi yang lebih baik, itu akan menjadi deligthful:
static Future<String> getLocalIpAddress() async {
final interfaces = await NetworkInterface.list(type: InternetAddressType.IPv4, includeLinkLocal: true);
try {
// Try VPN connection first
NetworkInterface vpnInterface = interfaces.firstWhere((element) => element.name == "tun0");
return vpnInterface.addresses.first.address;
} on StateError {
// Try wlan connection next
try {
NetworkInterface interface = interfaces.firstWhere((element) => element.name == "wlan0");
return interface.addresses.first.address;
} catch (ex) {
// Try any other connection next
try {
NetworkInterface interface = interfaces.firstWhere((element) => !(element.name == "tun0" || element.name == "wlan0"));
return interface.addresses.first.address;
} catch (ex) {
return null;
}
}
}
}
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'