簡體   English   中英

如何在NODEJS中獲取隨機客戶端的IP

[英]How to get random client's IP in NODEJS

我正在NODE.JS中的一個項目上工作,在該項目中,當用戶登錄時,其區域的天氣會自動顯示在其儀表板上。 據我了解,客戶來訪時:

1)使用request-ip跟蹤他的ip

2)然后根據這個區域的這個ip尺寸可以使用satelize確定這個m。

3)然后基於經度和緯度,可以借助forcast.io預測該地區的天氣。

問題是向該中間件發送請求,正在獲取回送ip。(localhost:3000)。而我想獲取任何隨機客戶端的ip。以便可以檢查我的api是否正常工作。 這是我的代碼:

router.get('/',function(req,res){

  var clientIp = requestIp.getClientIp(req); //inside middleware handle

  satelize.satelize({ip:clientIp}, function(err, geoData) { // if data is JSON, we may wrap it in js object 

    var obj = JSON.parse(geoData);

    forecast.get([obj.latitude, obj.longitude], function(err, weather) { 

      if(err) return console.dir(err); 

      console.log(weather);

    });

  }); 

});

如果我理解正確,則在本地計算機上進行開發時,您想使用隨機IP地址。 為此,您必須根據您的環境設置clientIp變量。 您可以為此使用NODE_ENV,有關詳細說明,請參見https://stackoverflow.com/a/16979503/2494649

如果要使用隨機客戶端的IP地址,則必須自己收集這些地址並將其設置為clientIp。 例如,您可以設置隨機客戶端IP的數組並隨機使用它們。

var randomIps = ['1.2.3.4', '5.6.7.8', '123.123.123.123'];
var clientIp;

if(process.env.NODE_ENV === 'development') {
    // Select random IP address
  clientIp = randomIps[Math.floor(Math.random()*randomIps.length)];
} else {
  clientIp = requestIp.getClientIp(req); //inside middleware handle
}

您可以使用您的應用程序(以匿名方式)將客戶端IP地址保存到數據存儲中,並使用這些地址為clientIp變量提供隨機IP地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM