Node.jsでプロキシIPを取得するにはどうすればよいですか?
この記事では主に、node.js のプロキシ IP 取得のサンプル コードに関する関連情報を紹介します。必要な友人は参照してください
node.js はプロキシ IP の取得を実装します
メインファイル: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();
パッケージのサポート: 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" } }
キャプチャされた IP を保存するには、mongodb データベースをローカルにインストールする必要があります。まだ実装されていません。主に好奇心からこれを書いています。
上記のコードは、IP プロキシ Web サイトの IP をキャプチャし、それを mongodb データベースに保存できます。
以下はkoa2 APIインターフェースに基づいたシンプルなサーバー実装です
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')
なぜPromiseとasyncが両方あるのかというと、非同期構文にあまり詳しくないのでどうやって書けばいいのかそれ。
使用法:
package.jsonによる
npm install //インストールサポート
nodeindex.js //プロキシIPを取得
nodeserver.js //シンプルなIPインターフェイスを実行
以上がNode.jsでプロキシIPを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









1. ブラック/ホワイト リストの IP 制限付きアクセス設定 nginx ブラック リストとホワイト リストを設定するにはいくつかの方法がありますが、ここでは一般的に使用される 2 つの方法のみを紹介します。 1. 最初の方法:allow、denydeny、およびallow命令はngx_http_access_moduleに属しており、nginxはデフォルトでこのモジュールをロードするため、直接使用できます。この方法は最も単純で直接的です。この設定はファイアウォールの iptable に似ています。使用方法: 構成ファイルに直接追加します: #Whitelist 設定の後に、アクセス可能な許可 IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}#ブラックリスト設定、

IP および MAC バインディングとは、特定の IP アドレスを特定の MAC アドレスに関連付けることを指し、その結果、MAC アドレスを使用するデバイスのみがネットワーク通信に IP アドレスを使用できるようになります。 ip と mac をバインドすると、バインドされたホストの IP アドレスがスプーフィングされるのを防ぐことができます。前提条件: 1. MAC アドレスは一意であり、スプーフィングできません。ルータに直接接続されているネットワーク上のホストにのみバインドできます (つまり、ホストのゲートウェイはルーター上にあります)。

ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

WeChat で IP アドレスを確認する方法: 1. パソコン版 WeChat にログインし、画面下のタスクバーを右クリックし、「タスク マネージャー」をクリックします。 2. タスク マネージャーが表示されたら、「」をクリックします。左下隅の「詳細」をクリックします; 3. タスク管理 ブラウザの「パフォーマンス」オプションを入力し、「リソース モニターを開く」をクリックします; 4. 「ネットワーク」を選択し、WeChat プロセス「Wechat.exe」を確認します; 5. 「」をクリックします。以下の「TCP 接続」を使用して、WeChat ネットワークの IP 関連の状況を監視します。メッセージを送信して返信を受け取ると、相手の IP アドレスがわかります。

1. ディレクトリのホワイトリストを設定します: 指定されたリクエスト パスに制限はありません。API ディレクトリへのリクエスト パスに制限がない場合は、server{location/app{proxy_passhttp://192.168.1.111: 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nolay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#nginx は正確なマッチングを優先するため

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

はじめに nginx がリバース プロキシとして使用される場合、デフォルト設定バックエンドによって取得される IP アドレスは nginx から取得されます。ユーザーの実際の IP ではなく、request.getRemoteAddr(); を使用して nginx の IP アドレスを取得します。1. Nginx 設定を変更します。サーバー{listen80;server_namejenkins.local.com;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_passhttp://192.168.10。
