Действительно ли возможно обнаружить Android и устройства на iOS на основе запросов DHCP?

Это хорошо: Вы не можете получить доступ к ресурсам процессов, которые не являются Вашими (если Вы не корень),

5
задан 10 November 2012 в 22:36
3 ответа

Здесь телефон Android отправил аналогичный идентификатор поставщика:

Option: (t=60,l=52) Vendor class identifier = "dhcpcd-5.2.10:Linux-3.0.16-ge733189:armv7l:shooter_u"

Однако устройство iPhone не отправило ничего, кроме своего MAC-адреса и имени хоста. То же самое и с устройством Nokia Symbian (E71). Мой образец из трех устройств показывает, что только устройства Android отправляют что-нибудь полезное. У вас может быть некоторый успех, если вы узнаете, какую информацию запрашивает каждый клиент (SIP-сервер, поиск домена) и действительно запрашивает , а не , и используя это как «отпечаток пальца».

Однако, на мой взгляд, реальный ответ - поместить «неизвестных» клиентов в сеть по умолчанию, а явно известные устройства в другую.

1
ответ дан 3 December 2019 в 01:58

Вы можете ограничить доступ к сети на вашем DHCP-сервере. Например, в ISC DHCP вы можете определить класс или несколько подклассов, используя строку, которую отправляет android:

class "Android" {
  match if substring(option vendor-class-identifier,0,5) = "dhcpd";
}

Вы можете зарегистрировать эту информацию для отладки в ваших файлах журналов, добавляя в ваш файл cfg:

log (debug, substring (option vendor-class-identifier, 0, 5));
0
ответ дан 3 December 2019 в 01:58

Использование имени хоста для сопоставления. Пользователи могут изменить его на Android, выбрав «Настройки»> «Параметры разработчика»> «Имя хоста устройства». Но я почти уверен, что 90% пользователей оставляют эту настройку в покое. iPhone и iPad

class "Android" {
  match if substring(option host-name,0,7) = "Android";
}
class "iPhone" {
  match if substring(option host-name,0,6) = "iPhone";
}
class "iPad" {
  match if substring(option host-name,0,4) = "iPad";
}
class "Windows-Phone" {
  match if substring(option host-name,0,13) = "Windows-Phone";
}
class "BLACKBERRY" {
  match if substring(option host-name,0,10) = "BLACKBERRY";
}
1
ответ дан 3 December 2019 в 01:58

Теги

Похожие вопросы