Tag: networking抓取

如何从haproxy docker容器中获取客户端IP?

我试图从我的nodejs服务器中的请求对象获取客户端的IP地址。 我的技术结构是:我运行两个docker集装箱。 一个是haproxy ,另一个是使用expressjs框架的expressjs 。 所有传入stream量首先由haproxy接收,我使用它代理和负载平衡。 Haproxy根据configuration文件中的ACLs将请求转发到适当的后端。 我尝试访问我的nodejs中的x-forwarded-for请求标头,但它只返回dockernetworking接口172.17.0.1的IP。 转到haproxyconfiguration,并在defaults块中使用option forwardfor header X-Client-IP还将x-client-ip头设置为docker网关接口ip。 此外,debugging日志也logging相同的IP。 所以这就是麻烦了。 由于haproxy在容器内部运行,因此认为haproxy网关接口是客户端。 我怎么能得到实际的客户端的IP haproxy在容器内,以便它可以转发到nodejs? 这是我的haproxyconfiguration文件: global debug maxconn 4096 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms timeout http-keep-alive 50000ms option http-keep-alive option http-server-close option forwardfor header X-Client-IP frontend http-in bind *:80 acl is_api hdr_end(host) -i api.3dphy-dev.com use_backend […]

如何使用horseman和nodejs打开一个URL数组?

我试图用骑士login到一个网站,find一组链接,打开每一个,刮一些数据,并返回它。 这是我到目前为止… function getLinks() { return horseman.evaluate(function () { var links = []; $('#cards > tbody > tr:not(:first-child) a').each(function (i, el) { links.push($(el).attr('href')); }); return links; }); } function scrapeDataFromLink(link) { return horseman .open(link) .waitForSelector('#details > fieldset > table') .evaluate(function () { var data = { name: $('#name > td:nth-child(2)').html().trim(), type: $('#type > td:nth-child(2)').html().trim(), expiry: […]

为什么Node.js / Express不接受来自本地主机的连接?

我今天遇到这个奇怪的行为,我找不到原因。 我正在使用MacOS Sierra。 我有这个代码(Express): app.server.listen(config.port, config.address, function () { logger.info('app is listening on', config.address + ':' + config.port); }); 它打印 app is listening on 127.0.0.1:5000 如果我尝试curl ,它会失败。 $ curl http://localhost:5000/api/ping curl: (56) Recv failure: Connection reset by peer 我检查了我的主机文件: $ cat /etc/hosts ## # Host Database # # localhost is used to configure the loopback […]

如何在同一个LAN上findSocket.IO服务器?

我正在开发一个连接同一networking上的设备的应用程序。 任何设备都可以作为服务器,我希望客户端能够自动find服务器,而无需用户手动input服务器的IP地址。 这是我打算这样做的: find客户端的IP,例如192.168.0.2 循环192.168.0。(0-> 255) 尝试连接所有这些IP,直到连接成功 这是正确的方式吗? 我可以做得更快吗? 在同一networking上的IP始终在xxx(0-> 255)范围内? 如果这是相关性,我正在使用Java和JavaScript(Node.js)。

Express JS – 检测电脑机器人,垃圾邮件

我试图在网上search,但没有得到这种东西。 我正在寻找expressjs / nodejs框架来识别和阻止垃圾邮件和从我的服务器抓取数据的计算机/用户。 我想保护我的服务器免受机器人。 只允许用户在那里和最好的框架。 function如 鉴定 阻止用户/ ips /networking 读取模式

如何在Node.js中从XML中获取url?

我的最终目标是让我的应用程序显示给定用户的500px.com帐户(这是一个摄影网站)的X最新图像的缩略图。 据我所知,该网站没有API,但它确实有个人用户的rss feed,即https://500px.com/janedoe/rss ,吐出xml。 使用xml2js,我可以将xmlparsing为一个js对象,并导航到包含我想要的url的html描述容器,就像这样(这只是使用rss提要中第一个项目的概念certificate) : var express = require('express'); var router = express.Router(); var request = require('request'); var parseString = require('xml2js').parseString; var EventEmitter = require('events').EventEmitter; var body = new EventEmitter(); /* GET home page. */ router.get('/', function(req, res, next) { request("https://500px.com/janedoe/rss", function(error, response, data) { body.data = data; body.emit('update'); }); body.on('update', function() { parseString(body.data, […]

使用相同的classNameselect多个标签?

使用这个语法: x('http://www.viadeo.com/fr/company/unicef', '.page-content', [{ img:'img@src', bio:'.pan-desc-description', org:'.pan-desc-footer-element @element-value', link: '.element-value a@href', **twitter:'.element-value a@href'** // I get the previous link not the twitter one }]).write('result.json') 网站内有多个具有该特定类名的项目,但只返回第一个。 有没有办法抓住他们所有人,也许我可以做一个限制与回报? 我很抱歉,如果它在文档中,我已经读了两遍,它看起来像没有明确说的任何地方。

如何最好的服务器>从服务器(不是Web服务器)

我试图build立一个服务器,将处理许多并发连接到iPhone客户端没有multithreading。 我会每隔10-30秒向所有客户端发送消息,但是大多数消息都是相同或非常相似的,并且易于分类。 鉴于高并发性的设置,但对数据sorting的需求低,我试图find我的服务器设置的最佳解决scheme。 我一直在寻找EventMachine,Twisted,node.js等事件驱动的软件包。看起来Twisted和EventMachine基本上是一个折腾,节点可能更快,但还没有完全开发的准备。 这让我想到了几个问题: Node是否不适合重要的开发,因为它的API缺乏,而且没有完全刷新? 或者可能有错误,会使我的发展地狱? 我正在考虑用C语言编写代码,因为磁盘I / O非常less,大部分应该很容易被caching。 如果是这样,似乎我应该使用非阻塞的UDP套接字,并处理自己的ACK。 我已经看过poll(),select(),epoll(),但是我很难确定哪个是最好的,以及如何调用它们。 有什么想法吗? 如果我使用Twisted或EventMachine(除语言之外,还有其他区别吗?我现在还不知道,所以我是空白的),我应该尝试使用TCP还是UDP? 这些语言可以在不到一秒的时间内处理1kB到10,000个客户端吗? 我会很感激任何见解/build议,现在我疯狂地绕着太多的文档和博客旋转我的轮子,没有编程背景来sorting它(至less还有什么理智)。 谢谢! 麦克风

如何在node.js中创build较低级别的networking数据包

我正在一个项目,我需要一些数据包创build,如ICMP ECHO和其他数据包,我可以启动TCP三方握手。 什么是做node.js的最好方法? 在node.js中我看不到像scappy(python)这样的数据包操作类库。 我现在所有的是用于监视数据包的node-pcap。 但是,我如何从头开始创build新的数据包?

当加载一个页面时,PhantomJs使用几个TCP连接

我使用PhantomJs来抓取一些网站,发现它打开几个TCP连接时加载甚至一页。 例如,以下是我的try.js: var args = require('system').args; var page = require('webpage').create(); var url = args[1]; page.open(url, function(status) { var title = page.evaluate(function() { return document.title; }); console.log('Page title is ' + title); //page.close(); }); 我试过了 phantomjs try.js http://www.google.com 发现它使用了4个连接。 我知道调用“page.close()”将closures所有连接。 但是如果我使用很多幻影进程,这样的问题仍然会导致大量的并发连接。 这是否发生,因为PhantomJs不使用持久的HTTP? 任何解决scheme