【发布时间】:2019-12-02 21:02:40
【问题描述】:
我正在尝试在 JavaScript 中进行代理检查。我输入代理数据并检查代理是否有效。
目前我使用 Node.js 的 request 模块编写了这个函数。
const request = require('request');
var checkProxy = function(id, ip, port, url, user, pass, callback) {
let proxy_url;
if (user){
if (user != ''){
proxy_url = `socks5://${user}:${pass}@${ip}:${port}`;
}
} else {
proxy_url = 'socks5://' + ip + ':' + port;
console.log(proxy_url)
}
var proxyRequest = request.defaults({
proxy: proxy_url,
});
proxyRequest({url: url, timeout: 120000}, function(err, res) {
var testText = 'content="Brum Brum ..."';
if( err ) {
callback(id, ip, port, false, -1, err);
} else if( res.statusCode != 200 ) {
callback(id, ip, port, false, res.statusCode, err);
} else if( !res.body ) {
callback(id, ip, port, false, res.statusCode, "regex problem" + options.regex + ".");
} else {
callback(id, ip, port, true, res.statusCode);
}
});
}
作为回调我传递:
() => {console.log(id, ip, port, false, res.statusCode, err);}
但是当我尝试检查 IP 地址时,它会给出错误的结果。
我从this site(代理:207.154.231.217:1080)获取代理并用函数检查它,但在回调console.log中我得到了当前错误:
错误:代理编号:0,ip:207.154.231.217,端口:1080,状态:-1,错误:错误:无法建立隧道套接字,原因=套接字挂起
我读到这是为了某种需要的身份验证,但我不明白为什么如果我在 this site 上查看它,网站会告诉我代理可以工作。
我正在使用:
Ubuntu 19.10 (Eoan Ermine)
Node.js v.13.0.1
npm 6.12.0
【问题讨论】:
-
什么是
request.defaults?这是一个 nodejs 应用程序吗? -
你在用windows吗?
-
不,我使用的是 ubunutu 19.10
标签: javascript node.js proxy