Есть ли способ получить список подключенных MAC-адресов, когда мой телефон подключен к модему Wi-Fi?Wi-Fi-модем - как получить список подключенных клиентов
ответ
Во-первых, у вас должно быть корневое устройство. Когда это делается, просто прочитайте dnsmasq.leases файл. Обычно он размещается по адресу: /data/misc/dhcp/dnsmasq.leases. Структура файла довольно проста - каждая строка представляет собой сводку подключенного пользователя. В сводке есть несколько полей, включая MAC. Я не нашел возможность получить MAC без root. Пожалуйста, поправьте меня, если я ошибаюсь.
Что касается клиентов, связанных со статическим ip не dhcp, они не появится в dnsmasq, у вас есть идея? – user935143
Разве нет класса из пакета 'android' для выполнения этой работы? –
Чтение /proc/net/arp
будет предоставлять информацию для статических и DHCP клиентов, которые общались с устройством в течение последних 60 секунд (настраивается в /proc/sys/net/ipv4/neigh/wl0.1/gc_stale_time
где wl0.1
является беспроводным сетевым интерфейсом на моем телефоне).
Он также доступен для пользователей, не являющихся пользователем root.
Это правда, что под/proc/net/arp не всегда обновляется список, когда устройство (клиент) отключено от AP @Roman? – gumuruh
@SuppressWarnings("ConstantConditions")
public static String getClientMacByIP(String ip)
{
String res = "";
if (ip == null)
return res;
String flushCmd = "sh ip -s -s neigh flush all";
Runtime runtime = Runtime.getRuntime();
try
{
runtime.exec(flushCmd,null,new File("/proc/net"));
}
BufferedReader br;
try
{
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null)
{
String[] sp = line.split(" +");
if (sp.length >= 4 && ip.equals(sp[0]))
{Assistance.Log(sp[0]+sp[2]+sp[3],ALERT_STATES.ALERT_STATE_LOG);
String mac = sp[3];
if (mac.matches("..:..:..:..:..:..") && sp[2].equals("0x2"))
{
res = mac;
break;
}
}
}
br.close();
}
catch (Exception e)
{}
return res;
}
// ----------------------------------------- ---------------
@SuppressWarnings("ConstantConditions")
public static String getClientIPByMac(String mac)
{
String res = "";
if (mac == null)
return res;
String flushCmd = "sh ip -s -s neigh flush all";
Runtime runtime = Runtime.getRuntime();
try
{
runtime.exec(flushCmd,null,new File("/proc/net"));
}
BufferedReader br;
try
{
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null)
{
String[] sp = line.split(" +");
if (sp.length >= 4 && mac.equals(sp[3]))
{
String ip = sp[0];
if (ip.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}") && sp[2].equals("0x2"))
{
res = ip;
break;
}
}
}
br.close();
}
catch (Exception e)
{}
return res;
}
public static ArrayList<String> getConnectedDevicesMac()
{
ArrayList<String> res = new ArrayList<String>();
//NetManager.updateArpFile();
BufferedReader br;
try
{
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
line = br.readLine();
while ((line = br.readLine()) != null)
{
String[] sp = line.split(" +");
if (sp[3].matches("..:..:..:..:..:.."))
res.add(sp[3]);
}
br.close();
}
catch (Exception e)
{}
return res;
}
Пожалуйста, предоставьте дополнительную информацию о том, что делает ваш код. Трудно сказать кому-нибудь новому, что происходит. –
- 1. socket.io обновить список подключенных клиентов
- 2. Socket.io - io.sockets.clients(). Length Как получить уникальный список подключенных клиентов
- 3. Как получить список подключенных клиентов к парусам/сокету?
- 4. Список подключенных клиентов в Python Tornado
- 5. Список подключенных клиентов username using socket io
- 6. Node.js - Получить список всех подключенных клиентов IP-адресов?
- 7. Flask-Socketio: namespace keyerror., Получить список подключенных клиентов
- 8. Получить список подключенных пользователей
- 9. Найти подключенных клиентов IP?
- 10. Получить всех подключенных клиентов к брокеру - emqttd
- 11. Получить количество клиентов, подключенных к SignalR
- 12. Мониторинг клиентов, подключенных к сети
- 13. Получите список подключенных идентификаторов клиентов от клиента MQTT
- 14. Получить список подключенных устройств USB
- 15. kbmMW DXE8 обновление подключенных клиентов
- 16. Как узнать количество клиентов, подключенных к серверу, и вернуть количество подключенных клиентов пользователю?
- 17. ASP.NET MVC3: количество подключенных клиентов
- 18. Как проверить количество клиентов, подключенных к серверу
- 19. Socket.io 1.4 количество клиентов, подключенных к серверу
- 20. Получение списка подключенных клиентов для службы wcf
- 21. Ограничить количество клиентов, подключенных к сетевой службе
- 22. Как получить список подключенных клиентов на сервере с использованием Python epoll
- 23. Как я могу получить список клиентов, подключенных к серверу в RPyC?
- 24. Как напечатать список подключенных устройств
- 25. Получите количество клиентов, подключенных к службе RMI
- 26. (количество) клиентов, подключенных к комнате в socket.io
- 27. Несколько клиентов, подключенных к серверу Tornado
- 28. Как получить список клиентов с маршрутизатора в java
- 29. ooVoo Android SDK получить список подключенных пользователей
- 30. Basic Java: получить список подключенных узлов
Пожалуйста, проверьте эту ссылку. http://stackoverflow.com/questions/21522961/how-to-get-the-client-device-details-which-is-connected-to-wifi-hotspot – user2711243