2013-05-03 6 views
6

Pracuję nad analityką internetową. Używam strony klienckiej JavaScript i serwera NodeJS. Wiem, że możemy się dowiedzieć, device type używając userAgent, ale jak wykryć markę urządzenia (po stronie klienta lub serwera)?Urządzenie wykrywające markę

+0

Jednym ze sposobów, aby dowiedzieć się, jest użycie rzeczywiste urządzenie i odwiedzić jedną z tych stron „Mój agent użytkownika”, i dowiedzieć się. O ile mi wiadomo, jedna z tych stron poprawiła mój model urządzenia. Powinien odpowiedzieć na twoje pytanie * "czy to możliwe" *. – Joseph

Odpowiedz

1

Nie można tego zrobić bezpośrednio; pole userAgent po prostu nie zawiera dostawcy. Można jednak zbudować bibliotekę tokenów userAgent, które mapują do konkretnych dostawców. Będzie to wymagało wielu badań i testów na szerokiej gamie urządzeń.

Na przykład wszystko z "iOS", "iPhone" lub "iPad" w userAgent można bezpiecznie zamapować na "Apple". Następnie na przykład Samsung Galaxy S3 ma numer modelu w userAgent, który jest "GT-I9300". Możesz wtedy zamapować to na "Samsung". ... a następnie musisz powtórzyć to dla każdego innego urządzenia, które chcesz rozpoznać. Przeglądanie ciągów agenta użytkownika online jest prawdopodobnie najszybszym sposobem.

0

Wykrywanie za pomocą userAgent Strings może powodować błędy w wykryciu. Możesz zmienić String przeglądarki na cokolwiek chcesz. W większości przypadków nie mówi, które to urządzenie.

4

Jedną z bibliotek, która to przetworzy, jest Platform.js i można jej używać po stronie klienta lub po stronie serwera, jak opisano na stronie intro, do której link znajduje się powyżej.

Oto przykład po stronie klienta:

<script type='text/javascript' src='platform.js'></script> 
    <script type='text/javascript'> 
     alert('you are using ' + platform.description + ' on an ' + (platform.manufacturer || 'unknown vendor')) 
    </script> 

Zauważ, że dostaniesz żadnego producenta na przeglądarkach generycznych ale powinien dostać marki na urządzeniach mobilnych np Apple, Samsung itp.

+0

Dzięki za cenne informacje. Testujemy i informujemy. – karthick

0

Wszystkie dane, które możesz uzyskać od swojego klienta, mogą zostać sfałszowane, więc nie oczekuj, że każdy użytkownik przekaże tylko 100% poprawnych danych.

Ale można uzyskać klienta useragent przez req.headers['user-agent'] w nodeJS, a tutaj jest a list of many mobile browsers.

1

Po stronie serwera można to zrobić bardzo łatwo za pomocą modułu npm urządzenia i jeśli korzystasz z Express.js, to jest to łatwe jak ciasto.

Zainstaluj moduł.

npm i --S express-device 

Dodać wyraźny kod jako oprogramowanie pośrednie.

var express = require('express'); 
var app = express(); 
var device = require('express-device'); 
app.use(device.capture()); 

app.get('/hello',function(req,res) { 
    res.send("Hi to "+req.device.type.toUpperCase()+" User"); 
}); 

app.listen(3000); 
console.log("Listening to Port 3000"); 

Prosty i słodki.

referencyjny: https://codeforgeek.com/2016/07/how-to-detect-device-type-in-nodejs/