Articles of 用户代理

Node J中所有控制器的全局variables

我想要一个variables,可以通过我的节点项目中的所有控制器访问。 目前在一个控制器中我有: var ua = req.headers['user-agent']; var isMobile = "no"; if(/mobile/i.test(ua)) isMobile="yes"; 为所有控制器复制过去所有这些都是毫无意义的,并将isMobilevariables传递给视图。 我想获得isMobile的价值一次,然后通过我想要从我的控制器。 有没有一个简单的方法来做到这一点,而不是在每个控制器粘贴这4行代码复制? 谢谢

将HTML快照提供给Moz SEO机器人

我正在使用Phantom在我的网站上预渲染每天的dynamic页面。 然后,我编写了一些代码来检查请求的用户代理,并在请求来自bot时提供预渲染的HTML快照。 我的一些机器人是: var socialBots = [ "facebookexternalhit/1.0", "facebookexternalhit/1.1", "FacebookExternalHit", "twitterbot", "TwitterBot", "Twitterbot/1.0", "LinkedInBot", "rogerBot", "rogerBot/1.0" ]; 然后我的nodeJS代码(使用Express)来监听漫游器并提供快照: app.use(function(req, res, next){ var userAgent = req.get("user-agent"), socialBot = false; for (i=0; i<socialBots.length; i++) { if (userAgent.indexOf(socialBots[i]) > -1) { socialBot = true; break; } } if (socialBot) { //serve snapshot } }); 这对Facebook和Twitter工作正常,但数组rogerBot的最后一行应该为Moz SEO,似乎并没有工作。 Moz SEO没有得到我的快照,这是最后一次抓取。 […]

节点检测来自用户代理的不安全浏览器

我有一个节点REST API。 该API通常是从浏览器中使用的SDK中调用的。 为了使整个结构正常工作,由于产品严重依赖安全性,与API通话的浏览器具有良好的CSPRNG和适当的内容安全策略实施是非常重要的。 显然,实施的质量只能在有限的程度上得到validation,但为了保护那些毫无害处的用户,应该使用用户代理轻松识别旧的或危险的浏览器。 关于如何检测浏览器有很多问题,这本身并不是很难做到。 我的问题是,是否有用户代理列表不安全或旧/过时/弃用? 从用户代理string到漏洞的映射? 我怎样才能最好地实施这样一个系统?

根据stringtesting子string的数组

我有一个bot名称的数组。 当一个用户或机器人访问我的网站,我得到的user-agent并希望testing是否存在其中的一个值在我的数组中。 var bots = [ "twitterbot", "linkedinbot", "facebookexternalhit", "pinterest", "dotbot", "rogerbot", "googlebot", "baiduspider", "yahoo! slurp", "bot", "spider", "simplepie", "yahooseeker", "embedly", "quora link preview", "outbrain", "vkshare", "monit", "pingability", "monitoring", "winhttprequest", "apache-httpclient", "getprismatic.com", "python-requests", "twurly", "yandex", "browserproxy", "webmeup-crawler", "qwantify" ]; var isBot = function(agent){ return bots.some(function(bot){ return bot.test(agent); }); } app.use(function(req, res, next){ var test = […]

SEO与Node.js的快递

我正在寻找向HTML中的漫游器提供内容,然后是所有其他的请求,只是渲染index.html ,让我的Backbone.js应用程序踢。 我最好尝试为Google,Facebook等创build一系列已知的机器人,然后如果用户代理不在该数组中,请呈现index.html ,或者在Node的Express中有可以说“这是一个真正的用户,而不是任何一种机器人“? app.use(function(req, res) { var ua = req.headers['user-agent']; // TODO res.render('index.html'); });

NodeJS:TypeError:无法读取未定义的属性'user-agent'

我得到以下错误: TypeError: Cannot read property 'user-agent' of undefined at /home/ubuntu/node/server.js:312:154 在第312行,我有这样的代码: var p = require('ua-parser'); console.log(p.parseUA(spark.headers['user-agent']).toString()); 任何想法如何避免错误? 它导致永远重新启动。 编辑 var p = require('ua-parser'); primus.on('connection', function (spark) { spark.on('register', function (data) { console.log(p.parseUA(spark.headers['user-agent']).toString()); }); });

如何使用Grunt或Node服务器基于User-Agent(移动和桌面)redirect请求/代理?

我正在使用Grunt及其代理库grunt-connect-proxy 。 我有两台服务器设置为我的网站的桌面和移动版本(两者都有单独的资产等,因此分离)。 这两个网站都托pipe在0.0.0.0,但在不同的端口(9000和10000)。 我怎么能代理请求到两个不同的服务器基于User-Agent头(这将告诉我,如果它是一个移动或桌面用户)? NodeJS中有另一种解决scheme可以使用吗?

如何从快递中获取当前的Windows用户?

您好,我是新的Nodejs和expression框架。 我正在实现一个简单的CRUD应用程序,用户期望从MS Windows访问页面。 我希望记下当前的Windows用户名。 我已经尝试login页面上的用户代理string,看起来用户代理不包含Windows用户名。 这是真的? 什么是正确的方式来实现呢? res.render('search', {user: req.get('User-Agent')}); 那么在玉器里, body p welcome, #{user}! 这是我得到的: Welcome, Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36!

使用selenium-webdriver和phantomjs在nodejs中设置用户代理

我需要更改我的PhantomJS浏览器的用户代理,它驱动着selenium-webdriver。 我find了在C#,Ruby和Java中更改用户代理的方法 这是我试过的: var webdriver = require('selenium-webdriver'); var useragent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0"; var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.phantomjs("phantomjs.page.settings.userAgent", useragent)). build(); Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34

为Node JS服务器设置用户代理

有没有可能configuration一个简单的节点JS服务器的用户代理? 例如,我想使用iPhone用户代理运行我的节点服务器来模拟设备显示。 不知道是否有一个NPM包做这个或一个自定义的JavaScript来操纵Node JS服务器的用户代理。 详情:我知道快速用户代理 它只会给你的parsingfunction和访问您的快速应用程序中的当前用户代理。 这是我的节点JS服务器的代码: var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); var exec = require('child_process').exec; var shell = require('shelljs'); app.use('/public', express.static(__dirname + '/public')); app.get('/', function(req, res,next) { res.sendFile(__dirname + '/index.html'); }); server.listen(4200); io.on('connection', function(client) { client.on('join', function(data) { console.log(data); }); client.on('command', function(data) { […]