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;
}
}
}
}
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı