gpt4 book ai didi

android - 获取运行我的应用程序的 Android 设备的 IP 的最可靠方法是什么?不是公网IP

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:58 24 4
gpt4 key购买 nike

我有一个应用程序,它有一个网络服务器,用户将从他们的家庭 LAN 访问该服务器。目前我有两种获取设备 IP 的方法,但我不知道哪一种更可能是正确的。

我的常规方式:

  List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
for (InetAddress addr : addrs) {
if (!addr.isLoopbackAddress()) {
String sAddr = addr.getHostAddress().toUpperCase();

我的替代方法:

        WifiInfo connectionInfo = wifiMgr.getConnectionInfo();
int ip = connectionInfo.getIpAddress();

我认为这一直工作正常,但我确实有一些关于它的统计数据,看起来这两个 ip 似乎只有大约 4% 的时间不同。

此外,我刚刚在 Chromebook 上试用了我的应用程序,替代方法实际上是正确的方法,而不是正常方法。

那么我怎么知道哪种方式更好或者是否有更好的选择?

最佳答案

它们非常不可靠,因为您必须处理很多边缘情况。

我更喜欢使用免费的外部服务;进行网络调用并获得适当的面向公众的 IP。尝试 https://www.ipify.org/

关于android - 获取运行我的应用程序的 Android 设备的 IP 的最可靠方法是什么?不是公网IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50706427/

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