2013-05-03 2 views
6

저는 웹 분석을 연구하고 있습니다. JavaScript 클라이언트 측과 NodeJS 서버 측을 사용하고 있습니다. userAgent을 사용하여 device type을 찾을 수는 있지만 장치 브랜드 (클라이언트 또는 서버 측)는 어떻게 검색합니까?감지 장치 브랜드

+0

한 가지 방법은 실제 장치를 사용하는 "내 사용자 에이전트"사이트 중 하나를 방문하여 찾을 수 있습니다. 내가 아는 한,이 사이트 중 하나는 내 장치 모델을 올바르게 갖추고 있습니다. 귀하의 질문에 대답해야합니다 * "가능합니다"*. – Joseph

답변

1

직접 할 수는 없습니다. userAgent 필드는 단순히 공급 업체를 포함하지 않습니다. 그러나 특정 공급 업체에 매핑되는 userAgent 토큰 라이브러리를 작성할 수 있습니다. 그러나 이것은 다양한 장치에 대한 많은 연구와 테스트를 필요로합니다.

예를 들어 userAgent에 "iOS", "iPhone"또는 "iPad"가있는 항목을 "Apple"에 안전하게 매핑 할 수 있습니다. 예를 들어, Samsung Galaxy S3에는 userAgent의 모델 번호 인 "GT-I9300"이 있습니다. 이것을 "Samsung"에 매핑 할 수 있습니다. ... 그런 다음 인식하려는 다른 모든 장치에 대해이 작업을 반복해야합니다. 온라인에서 사용자 에이전트 문자열을 찾는 것이 가장 빠른 방법 일 것입니다.

0

userAgent 문자열을 통한 검색으로 인해 오류가 발생할 수 있습니다. 브라우저 문자열을 원하는대로 변경할 수 있습니다. 대부분의 경우 그것이 어떤 장치인지 알려주지 않습니다.

4

당신을 위해 이것을 파싱하는 하나의 라이브러리는 Platform.js이며 위에 링크 된 소개 페이지에 설명 된대로 클라이언트 측 또는 서버 측 중 하나를 사용할 수 있습니다.

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

참고 제네릭 브라우저에 아무런 제조업체 얻을하지만, 예를 들어 모바일 장치에서 브랜드를 얻어야한다 : 여기

는 클라이언트 측 예제 Apple, Samsung 등

+0

귀중한 정보를 보내 주셔서 감사합니다 .i 테스트하고 알려 드리겠습니다. – karthick

0

클라이언트로부터 얻을 수있는 모든 데이터는 스푸핑 될 수 있으므로 모든 사용자가 100 % 올바른 데이터 만 전송할 것으로 기대하지는 마십시오.

nodeJS에서 req.headers['user-agent']을 통해 클라이언트 사용자 에이전트를 얻을 수 있으며 여기에 a list of many mobile browsers이 있습니다.

1

서버 쪽에서는 장치 npm 모듈을 사용하여 매우 쉽게이를 수행 할 수 있으며 Express.js를 사용하는 경우 케이크처럼 쉽습니다.

모듈을 설치하십시오.

npm i --S express-device 

익스프레스 코드를 미들웨어로 추가하십시오.

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

심플하고 달콤합니다.

참조 : 알아내는 https://codeforgeek.com/2016/07/how-to-detect-device-type-in-nodejs/