有什么方法可以从 Android 应用程序获取 Chromebook 的真实 IP 吗?
Is there any way to get the real ip of a Chromebook from an Android app?
我有一个 Android 应用需要设备的真实 IP,而不是虚拟网络 IP。我不想要 public IP,除非 Chromebook 在 public IP 上,我只需要 LAN 的私有 IP,但现在我正在获取我的虚拟 IP'我猜是 Android 个应用程序的虚拟网络。
同时使用 WifiManager
和 NetworkInterface.getNetworkInterfaces()
我得到的只是虚拟 IP。调用外部服务器将不起作用,因为那样会给我 public IP。
我知道过去有人问过这个问题,但我只是想看看是否有人找到了方法?
这在 ChromeOS.dev 上有更详细的回答。
要获取分配给 Chrome OS 设备连接到的最高优先级网络的 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
}
此 post 已在 Apache 2.0 下获得许可。
我有一个 Android 应用需要设备的真实 IP,而不是虚拟网络 IP。我不想要 public IP,除非 Chromebook 在 public IP 上,我只需要 LAN 的私有 IP,但现在我正在获取我的虚拟 IP'我猜是 Android 个应用程序的虚拟网络。
同时使用 WifiManager
和 NetworkInterface.getNetworkInterfaces()
我得到的只是虚拟 IP。调用外部服务器将不起作用,因为那样会给我 public IP。
我知道过去有人问过这个问题,但我只是想看看是否有人找到了方法?
这在 ChromeOS.dev 上有更详细的回答。
要获取分配给 Chrome OS 设备连接到的最高优先级网络的 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
}
此 post 已在 Apache 2.0 下获得许可。