gpt4 book ai didi

Flutter:在 Android 上获取本地 IP 地址

转载 作者:行者123 更新时间:2023-12-03 03:03:41 31 4
gpt4 key购买 nike

如何在 Flutter 中获取我的(Android)设备的本地 IP 地址?
这应该是

  • 连接到 WIFI 时我的路由器通过 DHCP 分配的本地 IP 地址
  • 如果连接到 VPN
  • 由我的 VPN 服务器分配的 VPN 网络中的本地 IP 地址(不是 VPN 服务器本身的全局 IP 地址)
  • 通过蜂窝连接时的全局 IP
  • 最佳答案

    我现在是这样解决的,但如果你有更好的解决方案,那就太好了:

    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;
    }
    }
    }
    }

    关于Flutter:在 Android 上获取本地 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63514434/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com