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

Hot*_*eam 5 android router ip-address wifi

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

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

在shell命令中,"ipconfig"不返回任何值.

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

WifiManager manager = (WifiManager)getSystemService(WIFI_SERVICE);
DhcpInfo info = manager.getDhcpInfo();
info.gateway;
Run Code Online (Sandbox Code Playgroud)

San*_*eep 13

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

final WifiManager manager = (WifiManager) super.getSystemService(WIFI_SERVICE);
final DhcpInfo dhcp = manager.getDhcpInfo();
final String address = Formatter.formatIpAddress(dhcp.gateway);
Run Code Online (Sandbox Code Playgroud)

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

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

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

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