Heim Web-Frontend js-Tutorial Wie erfasst man Proxy-IP in node.js?

Wie erfasst man Proxy-IP in node.js?

May 03, 2017 am 10:03 AM
ip node.js

In diesem Artikel werden hauptsächlich relevante Informationen zum Beispielcode zum Erfassen von Proxy-IPs durch node.js vorgestellt. Freunde, die ihn benötigen, können darauf verweisen

node.js implementiert das Erfassen von Proxy-IPs

Hauptdatei: index.js

/*
* 支持:node.js v7.9.0
*/
const cheerio=require('cheerio');
const fetch =require('node-fetch');
const Promise=require('bluebird');
let mongoose=require('mongoose');

Promise.promisifyAll(mongoose);
let Schema=mongoose.Schema;
mongoose.connect('mongodb://localhost:27017/ipproxypool');
let IPpool=new Schema({
  ip:{type:String,unique:true}
})
let Ipproxy=mongoose.model('IP',IPpool);

function fetchUrl(url){
  fetch(url,{
    method:'get',
    headers:{
    }
  })
  .then(res=>res.text())
  .then(body=>{
    let $=cheerio.load(body);
    let length=$('#list table tbody').find('tr').length;
    for (let i=0;i<length;i++){
    let ipaddress= $(&#39;#list table tbody&#39;).find(&#39;tr&#39;).eq(i).find(&#39;td&#39;).eq(0).text() ;
    let port = $(&#39;#list table tbody&#39;).find(&#39;tr&#39;).eq(i).find(&#39;td&#39;).eq(1).text();
    console.log(`IP:${ipaddress}:${port}`);
    let ip=`${ipaddress}:${port}`
    let ippool=new Ipproxy({
      ip:ip
    })
    ippool.save();
    }
  })
}

var sleep = function (time) {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      resolve(&#39;ok&#39;);
    }, time);
  })
};
const pageNumber=10;
var start = async function(){
  for(let j=1;j<pageNumber;j++){
     console.log(`当前是第${j}次等待..`);
    fetchUrl(`http://www.kuaidaili.com/free/inha/${j}/`);
    await sleep(1500);
  }
}
start();
Nach dem Login kopieren

Paketunterstützung: package.json

{
 "name": "demo-4-ipproxypool",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "false-l",
 "license": "",
 "devDependencies": {
  "babel-preset-es2015": "^6.24.1",
  "babel-preset-react": "^6.24.1",
  "babel-preset-stage-3": "^6.24.1"
 },
 "dependencies": {
  "babel-core": "^6.24.1",
  "bluebird": "^3.5.0",
  "cheerio": "^0.22.0",
  "koa": "^2.2.0",
  "koa-router": "^7.1.1",
  "mongoose": "^4.9.6",
  "node-fetch": "^1.6.3"
 }
}
Nach dem Login kopieren

Mongodb muss installiert sein Lokal Die Datenbank wird zum Speichern der erfassten IPs verwendet. Die IP-Verifizierung wurde noch nicht implementiert. Ich schreibe das hauptsächlich aus Neugier.

Der obige Code kann die IP der IP-Proxy-Website erfassen und in der Mongodb-Datenbank speichern.

Das Folgende ist eine einfache Serverimplementierung basierend auf der Koa2-API-Schnittstelle

Server

const Promise=require(&#39;bluebird&#39;);
let mongoose=require(&#39;mongoose&#39;);
const koa=require(&#39;koa&#39;);
const app=new koa();
var router = require(&#39;koa-router&#39;)();
Promise.promisifyAll(mongoose);
let Schema=mongoose.Schema;
mongoose.connect(&#39;mongodb://localhost:27017/ipproxypool&#39;);
let IPpool=new Schema({
  ip:{type:String,unique:true}
})
let Ipproxy=mongoose.model(&#39;IP&#39;,IPpool);

app.use(async (ctx, next) => {
 await next();
 var data=await Ipproxy.find({},function(err,ips){
  var ipmap=[];
   ips.forEach(function(ip){
     ipmap[ip._id]=ip;
     //console.log(ip)
   });
 })
 var map=data.map(ip=>ip.ip);
 ctx.response.type = &#39;text/json&#39;;
 ctx.response.body = map;
});
app.listen(3000);
console.log(&#39;server listen:3000&#39;)
Nach dem Login kopieren

Warum es sowohl Versprechen als auch Asynchronität gibt Das liegt daran, dass ich mit der asynchronen Syntax nicht sehr vertraut bin. Woher weiß ich also, wie man sie schreibt?

Verwendung:

Laut package.json

npm install // Installationsunterstützung

node index.js // Get Proxy-IP

node server.js //Einfache IP-Schnittstelle ausführen

Das obige ist der detaillierte Inhalt vonWie erfasst man Proxy-IP in node.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie legen Websites über Nginx IP-Beschränkungen für die Black-/Whitelist sowie IP-Zugriffsbeschränkungen für Länder und Städte fest? Wie legen Websites über Nginx IP-Beschränkungen für die Black-/Whitelist sowie IP-Zugriffsbeschränkungen für Länder und Städte fest? Jun 01, 2023 pm 05:27 PM

1. Black/White-List-IP-Einschränkungskonfiguration Nginx bietet mehrere Möglichkeiten, Black- und White-Lists zu konfigurieren. Hier sind nur zwei häufig verwendete Methoden. 1. Die erste Methode: Die Anweisungen „allow“, „denydeny“ und „allow“ gehören zu ngx_http_access_module. Nginx lädt dieses Modul standardmäßig, sodass es direkt verwendet werden kann. Diese Methode ist die einfachste und direkteste. Die Einstellung ähnelt der Firewall iptable. Verwendung: Fügen Sie direkt zur Konfigurationsdatei hinzu: #Whitelist-Einstellungen, gefolgt von „Zulassen ist zugänglich“ IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}# Blacklist-Einstellungen,

Was bedeutet das Binden von IP und Mac? Was bedeutet das Binden von IP und Mac? Mar 09, 2023 pm 04:44 PM

Unter IP- und Mac-Bindung versteht man die Zuordnung einer bestimmten IP-Adresse zu einer bestimmten MAC-Adresse, sodass nur das Gerät, das die MAC-Adresse verwendet, die IP-Adresse für die Netzwerkkommunikation verwenden kann. Durch das Binden von IP und Mac kann verhindert werden, dass die IP-Adresse des gebundenen Hosts gefälscht wird. Voraussetzungen: 1. Die MAC-Adresse ist eindeutig und kann nicht gefälscht werden. Sie kann nur an Hosts im Netzwerk gebunden werden, die direkt mit dem Router verbunden sind. Das Gateway des Hosts befindet sich auf dem Router.

Ein Artikel über Speichersteuerung in Node Ein Artikel über Speichersteuerung in Node Apr 26, 2023 pm 05:37 PM

Der nicht blockierende und ereignisgesteuerte Knotendienst hat den Vorteil eines geringen Speicherverbrauchs und eignet sich sehr gut für die Verarbeitung massiver Netzwerkanforderungen. Unter der Voraussetzung massiver Anfragen müssen Probleme im Zusammenhang mit der „Speicherkontrolle“ berücksichtigt werden. 1. Der Garbage-Collection-Mechanismus und die Speicherbeschränkungen von V8 Js wird von der Garbage-Collection-Maschine gesteuert

Detaillierte grafische Erläuterung des Speichers und des GC der Node V8-Engine Detaillierte grafische Erläuterung des Speichers und des GC der Node V8-Engine Mar 29, 2023 pm 06:02 PM

Dieser Artikel vermittelt Ihnen ein detailliertes Verständnis des Speichers und Garbage Collectors (GC) der NodeJS V8-Engine. Ich hoffe, er wird Ihnen hilfreich sein!

So überprüfen Sie die IP-Adresse auf WeChat So überprüfen Sie die IP-Adresse auf WeChat May 31, 2023 am 09:16 AM

So überprüfen Sie die IP-Adresse auf WeChat: 1. Melden Sie sich bei der Computerversion von WeChat an, klicken Sie mit der rechten Maustaste auf die Taskleiste am unteren Bildschirmrand und klicken Sie auf „Task-Manager“. 2. Wenn der Task-Manager angezeigt wird, klicken Sie auf „; Details“ in der unteren linken Ecke; 3. Aufgabenverwaltung Geben Sie die Option „Leistung“ des Browsers ein und klicken Sie auf „Ressourcenmonitor öffnen“; 4. Wählen Sie „Netzwerk“ und überprüfen Sie den WeChat-Prozess „Wechat.exe“; 5. Klicken Sie auf „ TCP-Verbindung“ unten, um die IP-bezogene Situation des WeChat-Netzwerks zu überwachen. Wenn Sie eine Nachricht senden und eine Antwort erhalten, wird die IP-Adresse der anderen Person angezeigt.

So legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest So legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest May 18, 2023 pm 03:52 PM

1. Legen Sie die Verzeichnis-Whitelist fest: Es gibt keine Einschränkung für den angegebenen Anforderungspfad. Wenn es keine Einschränkung für den Anforderungspfad zum API-Verzeichnis gibt, kann er als server{location/app{proxy_passhttp://192.168.1.111 geschrieben werden: 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nodelay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#Weil Nginx der genauen Übereinstimmung Priorität einräumt

Lassen Sie uns ausführlich über das File-Modul in Node sprechen Lassen Sie uns ausführlich über das File-Modul in Node sprechen Apr 24, 2023 pm 05:49 PM

Das Dateimodul ist eine Kapselung der zugrunde liegenden Dateioperationen, wie z. B. Lesen/Schreiben/Öffnen/Schließen/Löschen von Dateien, Hinzufügen usw. Das größte Merkmal des Dateimoduls besteht darin, dass alle Methoden zwei Versionen von **synchronem** und **bereitstellen. asynchron**, mit Methoden mit dem Suffix sync sind alle Synchronisationsmethoden, und diejenigen ohne sind alle heterogene Methoden.

So erhalten Sie die echte IP-Adresse des Benutzers basierend auf dem Nginx-Reverse-Proxy So erhalten Sie die echte IP-Adresse des Benutzers basierend auf dem Nginx-Reverse-Proxy May 13, 2023 pm 05:07 PM

Einführung Wenn nginx als Reverse-Proxy verwendet wird, stammt die vom Standardkonfigurations-Backend erhaltene IP-Adresse von nginx. Verwenden Sie request.getRemoteAddr();, um die IP-Adresse von nginx zu erhalten, nicht die tatsächliche IP des Benutzers. 1. Ändern Sie die Nginx-Konfiguration: server{listen80;server_namejenkins.local.com;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_passhttp://192.168.10.

See all articles