Wie erfasst man Proxy-IP in 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= $('#list table tbody').find('tr').eq(i).find('td').eq(0).text() ; let port = $('#list table tbody').find('tr').eq(i).find('td').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('ok'); }, 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();
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" } }
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('bluebird'); let mongoose=require('mongoose'); const koa=require('koa'); const app=new koa(); var router = require('koa-router')(); 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); 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 = 'text/json'; ctx.response.body = map; }); app.listen(3000); console.log('server listen:3000')
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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,

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.

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

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: 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.

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

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.

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.
