如何以编程方式显示连接到 android 热点的设备的 IP 地址?
How to display IP address of devices which are connected to android hotspot programmatically?
我需要在应用程序中显示连接到 android 热点的设备的 IP 地址。
请帮帮我
您在系统文件中有客户信息:/proc/net/arp
您将需要外部存储权限。
文件内容示例:
IP address HW type Flags HW address Mask Device
192.168.43.40 0x1 0x2 c0:ee:fb:43:e9:f8 * wlan0
您应该解析文件并获取数据。
例如,您可以尝试这样的操作:
public ArrayList<String> getClientList() {
ArrayList<String> clientList = new ArrayList<>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null) {
String[] clientInfo = line.split(" +");
String mac = clientInfo[3];
if (mac.matches("..:..:..:..:..:..")) { // To make sure its not the title
clientList.add(clientInfo[0]);
}
}
} catch (java.io.IOException aE) {
aE.printStackTrace();
return null;
}
return clientList;
}
***在 root 设备上测试。
我需要在应用程序中显示连接到 android 热点的设备的 IP 地址。
请帮帮我
您在系统文件中有客户信息:/proc/net/arp 您将需要外部存储权限。
文件内容示例:
IP address HW type Flags HW address Mask Device
192.168.43.40 0x1 0x2 c0:ee:fb:43:e9:f8 * wlan0
您应该解析文件并获取数据。
例如,您可以尝试这样的操作:
public ArrayList<String> getClientList() {
ArrayList<String> clientList = new ArrayList<>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null) {
String[] clientInfo = line.split(" +");
String mac = clientInfo[3];
if (mac.matches("..:..:..:..:..:..")) { // To make sure its not the title
clientList.add(clientInfo[0]);
}
}
} catch (java.io.IOException aE) {
aE.printStackTrace();
return null;
}
return clientList;
}
***在 root 设备上测试。