Android如何获取到连接的WIFI无线路由器的所有客户端的MAC地址?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android如何获取到连接的WIFI无线路由器的所有客户端的MAC地址?相关的知识,希望对你有一定的参考价值。
使用192.168.0.1,进入设置页面可以查看到当前WIFI无线路由器的所有客户端的MAC地址。那么,问题来了,我将通过什么手段使android获取到这些信息。
方案一:直接使用手机访问192.168.0.1,在设置页面抓取MAC地址。那么该如何抓取呢?
方案二:ping同一网段的所以IP,ping通,获取MAC地址。
各位大侠请给出建议,相关技术,我好去查询相关材料,谢谢各位了。
1、电脑连接无线路由器任一LAN口,打开浏览器,地址栏输入路由器网关地址(路由器背后标签上有的),进入设置页面。
2、点击“无线设置”—“主机状态”—查看右侧“当前所连接的主机数”。这样就能看到连接到这个无线路由器的设备的MAC地址了。 参考技术A 路由器连接的mac地址池都是直接支持导出的,不需要抓取什么页面这些,都可以直接导出追问
大侠,请讲解一下相应的技术、方法或Android指令,我去查资料。
如何以编程方式在android中获取连接的wifi路由器的IP地址?
【中文标题】如何以编程方式在android中获取连接的wifi路由器的IP地址?【英文标题】:how to obtain the ip address of the connected wifi router in android programmatically? 【发布时间】:2012-08-13 15:29:58 【问题描述】:我想获取我的android手机所连接的wifi路由器的IP地址?我知道我们可以通过android APIS获取mac/BSSId和SSID,但是我找不到找到它的ip地址的方法?
我找到了获取手机ip地址的代码,拥有wifi路由器
WifiManager myWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo myWifiInfo = myWifiManager.getConnectionInfo();
int ipAddress = myWifiInfo.getIpAddress();
System.out.println("WiFi address is " + android.text.format.Formatter.formatIpAddress(ipAddress))
但没能得到我想要的
【问题讨论】:
试试这个解决方案。 ***.com/a/6071963/735675 使用给定的代码你得到了什么?你想得到什么? 你添加权限了吗?我确定你的代码没有问题。 @paritybit 我想获取路由器的IP地址,这样我就可以连接到另一个连接到同一路由器的安卓手机 @Dya bro 这将给出android设备的IP地址..我想要它所连接的路由器的IP地址 【参考方案1】:你可能想要的是DhcpInfo
:
final WifiManager manager = (WifiManager) super.getSystemService(WIFI_SERVICE);
final DhcpInfo dhcp = manager.getDhcpInfo();
final String address = Formatter.formatIpAddress(dhcp.gateway);
这将生成(格式化的)网关 IP 地址,应该就是您要查找的地址。
【讨论】:
这是一个非常简单的解决方案,主要目标 - 它的工作原理。但很遗憾,它不支持 IPv6 它给了我本地 IP 地址【参考方案2】:由于 formatIpAddress 已被弃用,这里是替代方案:
public String getHotspotAdress()
final WifiManager manager = (WifiManager)super.getSystemService(WIFI_SERVICE);
final DhcpInfo dhcp = manager.getDhcpInfo();
int ipAddress = dhcp.gateway;
ipAddress = (ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN)) ?
Integer.reverseBytes(ipAddress) : ipAddress;
byte[] ipAddressByte = BigInteger.valueOf(ipAddress).toByteArray();
try
InetAddress myAddr = InetAddress.getByAddress(ipAddressByte);
return myAddr.getHostAddress();
catch (UnknownHostException e)
// TODO Auto-generated catch block
Log.e("Wifi Class", "Error getting Hotspot IP address ", e);
return "null"
【讨论】:
以上是关于Android如何获取到连接的WIFI无线路由器的所有客户端的MAC地址?的主要内容,如果未能解决你的问题,请参考以下文章