【问题标题】:How to find LAN ip address of android device?如何找到安卓设备的局域网IP地址?
【发布时间】:2012-11-06 08:02:11
【问题描述】:

如果设备的 wifi 已连接,我假设该设备有一个 LAN IP 地址,大概是由路由器上运行的 dhcp 分配的。

如何在wifi接口上找到局域网ip地址(不是外部ip)?

谢谢,

【问题讨论】:

  • “如果设备的 wifi 已连接,我假设设备的 LAN IP 地址可能由路由器上运行的 dhcp 分配。” - 不一定。虽然 ariefbayu 的回答会帮助您找到各种网络接口的 IP 地址,但您不能假设 wifi 接口的 IP 地址是来自 LAN 的一个。各个国家/地区都有“广域”wifi 服务 - 这意味着如果您的要求是与实际的 wifi LAN 通信,如果用户的设备连接到“广域”wifi 网络,您的软件可能无法运行。跨度>

标签: android


【解决方案1】:

NetworkInterface 会帮助你:

String ipAddress = null;
try {
    for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
        NetworkInterface intf = en.nextElement();
        for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
            InetAddress inetAddress = enumIpAddr.nextElement();
            if (!inetAddress.isLoopbackAddress()) {
                ipAddress = inetAddress.getHostAddress().toString();
            }
        }
    }
} catch (SocketException ex) {}

【讨论】:

  • 连接3G/4G不也返回WAN地址吗?
  • 据我了解,根据当前连接的内容,您将只有一个 IP。如果使用 WIFI,则可以使用本地 LAN。如果使用 3G/4G,WAN 就是你得到的。
  • 嗯。如果启用(wifi)网络共享,则应该有两个地址。你怎么看?
  • 不是当android处于网络共享模式时,wifi模块被禁用了吗?
  • 通过我的 nexus,我可以将我的 WAN 连接连接到 WIFI 连接(手机也是接入点)。在这种情况下,我从未检查过网络 api 返回的内容。当手机是双卡时,我也从未检查过发生了什么。我不确定我们如何在我们的应用中模拟 Android 顶部栏的连接状态
猜你喜欢
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多