2013-05-03 22 views
6

Ich arbeite an Web Analytics. Ich benutze JavaScript clientseitig und NodeJS serverseitig. Ich weiß, wir können herausfinden, device type mit userAgent, aber wie erkenne ich die Marke des Geräts (Client-oder Server-Seite)?Erkennungsgerät Marke

+0

Ein Ausweg zu finden, ist ein tatsächliches Gerät zu verwenden und eine dieser „My User Agent“ Seiten besuchen, und finden Sie heraus. Soweit ich weiß, hat eine dieser Seiten mein Gerätemodell richtig gemacht. Es sollte Ihre Frage beantworten * "ist es möglich" *. – Joseph

Antwort

1

Sie können es nicht direkt tun; Das Feld userAgent enthält den Anbieter einfach nicht. Sie können jedoch eine Bibliothek von userAgent-Tokens erstellen, die bestimmten Anbietern zugeordnet sind. Dies erfordert jedoch eine Menge Forschung und Tests an einer Vielzahl von Geräten.

Zum Beispiel, alles mit "iOS", "iPhone" oder "iPad" im userAgent können Sie sicher zu "Apple" zuordnen. Dann hat zum Beispiel das Samsung Galaxy S3 im userAgent die Modellnummer, die heißt "GT-I9300". Sie können dies dann "Samsung" zuordnen. ... und dann müssen Sie dies für jedes andere Gerät wiederholen, das Sie erkennen möchten. Nachschlagen von User Agent Strings online ist wahrscheinlich der schnellste Weg.

0

Die Erkennung über userAgent Strings kann zu Fehlern bei der Erkennung führen. Sie können die Browser-Zeichenfolge zu dem ändern, was Sie möchten. In den meisten Fällen sagt es Ihnen nicht, welches Gerät es ist.

4

Eine Bibliothek, die dies für Sie analysiert, ist Platform.js, und Sie können es entweder Client-Seite oder Server-Seite verwenden, wie in ihrer oben verlinkten Intro-Seite beschrieben.

Hier ist ein clientseitige Beispiel:

<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> 

Beachten Sie, dass kein Hersteller auf generische Browsern, sondern sollte die Marke auf mobilen Geräten zum Beispiel erhalten Apple, Samsung usw.

+0

Vielen Dank für wertvolle Informationen. Ich werde testen und Sie wissen lassen. – karthick

0

Alle Daten, die Sie möglicherweise von Ihrem Client erhalten, können gefälscht sein. Erwarten Sie daher nicht, dass jeder Benutzer nur 100% korrekte Daten überträgt.

Aber Sie können die Clients useragent über req.headers['user-agent'] in NodeJS und hier ist a list of many mobile browsers.

1

Auf der Serverseite können Sie dies sehr einfach mit dem Gerät npm Modul tun, und wenn Sie Express.js verwenden, dann ist es einfach wie Kuchen.

Modul installieren.

npm i --S express-device 

Fügen Sie den Expresscode als Middleware hinzu.

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"); 

Einfach und süß.

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

Verwandte Themen