PHP-решение
51Degrees способно сделать это. Вы можете получить бесплатный API с открытым исходным кодом здесь https://github.com/51Degrees/Device-Detection. Вы можете использовать свойство HardwareFamily, чтобы определить, является ли это iPad / iPod / iPhone и т. д.
Из-за природы пользовательских агентов Apple первоначальный результат будет возвращать универсальное устройство, однако, если вас интересует конкретное устройство, вы можете использовать переопределение на стороне клиента JavaScript для определения конкретной модели.
Для этого вы можете реализовать нечто похожее на следующую логику, когда определите, что это устройство Apple, в данном случае для iPhone.
// iPhone model checks.
function getiPhoneModel() {
// iPhone 6 Plus
if ((window.screen.height / window.screen.width == 736 / 414) &&
(window.devicePixelRatio == 3)) {
return "iPhone 6 Plus";
}
// iPhone 6
else if ((window.screen.height / window.screen.width == 667 / 375) &&
(window.devicePixelRatio == 2)) {
return "iPhone 6";
}
// iPhone 5/5C/5S or 6 in zoom mode
else if ((window.screen.height / window.screen.width == 1.775) &&
(window.devicePixelRatio == 2)) {
return "iPhone 5, 5C, 5S or 6 (display zoom)";
}
// iPhone 4/4S
else if ((window.screen.height / window.screen.width == 1.5) &&
(window.devicePixelRatio == 2)) {
return "iPhone 4 or 4S";
}
// iPhone 1/3G/3GS
else if ((window.screen.height / window.screen.width == 1.5) &&
(window.devicePixelRatio == 1)) {
return "iPhone 1, 3G or 3GS";
} else {
return "Not an iPhone";
};
}
Или для iPad
function getiPadVersion() {
var pixelRatio = getPixelRatio();
var return_string = "Not an iPad";
if (pixelRatio == 1 ) {
return_string = "iPad 1, iPad 2, iPad Mini 1";
}
if (pixelRatio == 2) {
return_string = "iPad 3, iPad 4, iPad Air 1, iPad Air 2, iPad Mini 2, iPad
Mini 3";
}
return return_string;
}
Для получения дополнительной информации об исследованиях, проведенных компанией 51Deg в отношении устройств Apple, вы можете прочитать их пост в блоге здесь https://51degrees.com/blog/device-detection-for-apple-iphone-and-ipad.
Раскрытие информации: я работаю на 51 градусов.