我正在尝试使用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地址时,它给出了错误的结果。我从这个网站获取了代理(proxy: 207.154.231.217:1080
)并使用该函数进行检查,但在回调console.log中,我得到了以下错误:
错误:代理编号:0,IP:207.154.231.217,端口:1080,状态:-1,错误:错误:无法建立隧道套接字,原因=套接字挂起
我读到说这可能是某种需要认证的问题,但我不明白为什么如果我在这个网站上检查它,网站会告诉我代理正在工作。
我正在使用:
Ubuntu 19.10 (Eoan Ermine)
Node.js v.13.0.1
npm 6.12.0
request.defaults
是什么?这是一个Node.js应用程序吗? - Bergi