Flutter: Android'de yerel IP adresi alın
Aug 21 2020
Flutter'da (Android) cihazımın yerel IP adresini nasıl alırım? Bu olmalı
- WIFI'a bağlandığında yönlendiricim tarafından DHCP aracılığıyla atandığım yerel IP adresi
- VPN'e bağlıysa VPN sunucum tarafından atanan VPN ağındaki yerel IP adresi (VPN sunucusunun kendisi tarafından genel IP adresi değil)
- hücresel ağ üzerinden bağlandığında küresel IP
Yanıtlar
1 JulianAßmann Sep 02 2020 at 05:53
Şimdilik bu şekilde çözdüm, ancak daha iyi bir çözümün varsa, bu çok hoş olurdu:
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;
}
}
}
}
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'