android - 如何从android中的代码知道路由器的IP地址?

标签 android wifi ip-address router

如何从代码中找到路由器的IP地址(网关地址)?

WifiInfo.getIpAddress() - 返回设备的 IP 地址。

在 shell 命令中 “ipconfig” 不返回任何值。

这是我的解决方案,但如果有更好的方法,请告诉我:

WifiManager manager = (WifiManager)getSystemService(WIFI_SERVICE);
DhcpInfo info = manager.getDhcpInfo();
info.gateway;

最佳答案

嘿,这可能对你有帮助:DHCPInfo

final WifiManager manager = (WifiManager) super.getSystemService(WIFI_SERVICE);
final DhcpInfo dhcp = manager.getDhcpInfo();
final String address = Formatter.formatIpAddress(dhcp.gateway);

将以下行添加到 AndroidManifest.xml 以访问 wifi 功能:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

由于不推荐使用 formatIpAddress,现在您可以使用以下代码

byte[] myIPAddress = BigInteger.valueOf(manager.getIpAddress()).toByteArray();
ArrayUtils.reverse(myIPAddress);
InetAddress myInetIP = InetAddress.getByAddress(myIPAddress);
String myIP = myInetIP.getHostAddress();

关于android - 如何从android中的代码知道路由器的IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9035784/

相关文章:

mysql - 在 MySQL 中存储 IP 地址的最有效方法

java - 如何以正确的方式将java对象写入firebase?

android - 无法在 Mac OS X El Capitan 上启动虚拟设备

android - 如何在 Android Gradle 配置中获取当前的 buildType

python - 使用 Flask for Python 获取访问者的 IP 地址

python - 如何使用 ipaddr 模块获取 CIDR 的第一个/最后一个 IP 地址

java - 我想在播放音乐并且按钮显示 "play"后将搜索栏重置为开始位置

android - 减少(Android)电池时间的是什么?

java - 如何连接到特定的 wifi 网络?

android - 实时无线传感器数据传输。 WiFi 还是蓝牙? TCP 还是 UDP?