cas*_*orz 3 android google-chrome-os chromebook
我有一个Android应用程序,需要设备的真实IP,而不是虚拟网络IP。我不需要公共IP,除非Chromebook位于公共IP上,我只需要LAN的私有IP,但现在我得到了一个虚拟IP,我猜这是Android的虚拟网络应用。
使用两者WifiManager,NetworkInterface.getNetworkInterfaces()我得到的只是虚拟IP。调用外部服务器是行不通的,因为这会让我获得公共IP。
我知道过去有人问过这个问题,但我只是想检查一下是否有人找到了方法?
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
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |