有没有办法从 Android 应用程序获取 Chromebook 的真实 IP?

cas*_*orz 3 android google-chrome-os chromebook

我有一个Android应用程序,需要设备的真实IP,而不是虚拟网络IP。我不需要公共IP,除非Chromebook位于公共IP上,我只需要LAN的私有IP,但现在我得到了一个虚拟IP,我猜这是Android的虚拟网络应用。

使用两者WifiManagerNetworkInterface.getNetworkInterfaces()我得到的只是虚拟IP。调用外部服务器是行不通的,因为这会让我获得公共IP。

我知道过去有人问过这个问题,但我只是想检查一下是否有人找到了方法?

Ale*_* N. 7

ChromeOS.dev上对此有更详细的回答。

要获取分配给 Chrome 操作系统设备所连接的最高优先级网络的 IPv4 地址,请检查 Android 系统属性 arc.net.ipv4.host_address,并根据需要检查 arc.net.ipv4.host_gateway。一种方法是:

fun getChromeOsIpAddress() : String {
   val process = ProcessBuilder().command("/system/bin/getprop", "arc.net.ipv4.host_address").start()
   val ipAddress = readInput(process.inputStream)
   return ipAddress
}

fun getChromeOsIpGateway() : String {
   val process = ProcessBuilder().command("/system/bin/getprop", "arc.net.ipv4.host_gateway").start()
   val gatewayAddress = readInput(process.inputStream)
   return gatewayAddress
}
Run Code Online (Sandbox Code Playgroud)

本文已获得 Apache 2.0 许可。

https://developers.google.com/open-source/devplat