gpt4 book ai didi

java - getHostAddress() 返回反向的 ip 地址

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

我正在尝试使用 WifiManager 和 WifiInfo 类获取我的手机 IP 地址。

它返回正确的 ip 地址反转。

public String getWifiIpAddress() {
WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wi = wm.getConnectionInfo();

byte[] ipAddress = BigInteger.valueOf(wi.getIpAddress()).toByteArray();
try {
InetAddress myAddr = InetAddress.getByAddress(ipAddress);
String hostAddr = myAddr.getHostAddress();
return hostAddr;
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return "";
}

结果:73.0.168.192

最佳答案

好的,我刚刚看到你的地址是反的! :)

它被称为大/小端问题,阅读更多关于 Endianness 的信息这是所有程序员都必须知道的,特别是在不同操作系统上进行应用程序集成和迁移时。

在从 Wifi 管理器获取连接信息后添加此内容。

int ipAddress = wi.getIpAddress();

ipAddress = (ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN)) ?
Integer.reverseBytes(ipAddress) : ipAddress;

然后使用 toByteArray 和 getHostAddress 等继续您的代码。

关于java - getHostAddress() 返回反向的 ip 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29937433/

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