欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js使用免費的阿里云ip查詢獲取ip所在地【推薦】

 更新時間:2018年09月03日 10:46:48   作者:巽秋  
這篇文章主要介紹了node.js使用免費的阿里云ip查詢獲取ip所在地的相關(guān)知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下

在項目過程中,我們常常需要獲取IP的所在地。而這一功能一般都是通過一些數(shù)據(jù)網(wǎng)站的對外接口來實現(xiàn),這些接口一般情況下都是付費使用的。在這篇文章中我將記錄,基于node.js的阿里云免費IP地址查詢接口的使用。

1.購買服務

https://market.aliyun.com/products/57002003/cmapi010805.html?spm=5176.2020520132.101.9.R0owP9#sku=yuncode480500000

 這是阿里云的一個AIP接口,點擊上面鏈接后你會進入以下頁面

點擊購買后,會讓你登錄。阿里云可以用淘寶賬戶登錄,想來應該大家都有。并且這個API不要錢100萬次查詢,應該足夠支撐所有的非商業(yè)用途了。

購買后在控制臺的云市場中你可以找到這個訂單,點擊右側(cè)的接口進入AIP使用教程界面

這里進去之后是剛才的購買頁面,向下滑動就可以看到該API的使用方法


這里有各種語言的官方示例,當然意料之中的沒有Node版,所以下方我將介紹Node的使用方法

2.搭建服務器

由于本文主題是使用該接口,所以如果搭建服務器有描述不清的地方請大家諒解。

這里我使用express搭建的服務器

先創(chuàng)建一個test文件夾

文件夾里有兩個文件

第一個是test.js(服務器配置文件)

第二個是package.json(用于引入express模塊)

 //這里是測試文件test.js
 const http = require('http'),
  express = require('express'),
  app = express();
 app.use('/',function (req,res) {//訪問localhost所有的請求都會進入這里
  res.send('服務器啟動');
 });
 http.createServer(app).listen(80,'0.0.0.0');//創(chuàng)建服務器實例
{
 "name": "test",
 "version": "1.0.0",
 "dependencies": {
  "express": "latest"
 }
}
//package.json

先在package.json中右鍵 npm install(cnpm也行)

我的編譯器是webstorm(不一樣的同學請按自己的來操作)

安裝完成后就可以運行test.js了

服務器啟動后我們打開瀏覽器測試一下


到這里服務器的搭建就完成了

下面進入Api的使用

3.Api接口的調(diào)用

在之前的官方頁面中有個調(diào)試工具點進去你會看見

 根據(jù)這個我們進行相關(guān)的配置

首先我們要引入https因為這個請求雖然是get但是要使用https(之前被這個卡了好久一直沒有找到原因)

let option = {
  hostname:"dm-81.data.aliyun.com",//上圖的接口域名
  path:`/rest/160601/ip/getIpInfo.json?ip=${ip}`,//上圖的path格式 在最后附上你要查詢的IP地址(我這里是獲取的用戶的IP)
  headers:{//設置請求頭
   "Content-Type":"application/json; charset=utf-8",
   "Authorization": "APPCODE 這里是你阿里云中那個appcode",
  }
 };

appcode

配置參數(shù)完成后就可以開始寫https請求了

https.request使用方法與http.request 一致詳情請見官網(wǎng)文檔(http://nodejs.cn/api/http.html#http_http_request_options_callback)

let re = https.request(option,(Res)=>{//為了與外層的res區(qū)別故此處響應文件用Res
  Res.setEncoding('utf8');
  if(Res.statusCode===200){//若http狀態(tài)碼為200則請求成功
   Res.on('data', (data) => {
    res.send(data);//將接口返回的數(shù)據(jù)返回到頁面上
   });
  }
 });
 re.on('error', (e) => {
  console.error(`請求遇到問題: ${e.message}`);
 });
 re.end();

下面粘出完整代碼(需要的同學拿走請注明出處 把appcode換成你自己的即可 創(chuàng)作不易望大家點點訂閱 手動滑稽)

//這里是測試文件
const http = require('http'),
 https = require('https'),
 express = require('express'),
 app = express();
app.use('/',function (req,res) {//訪問localhost所有的請求都會進入這里
 let ip = req.headers['x-forwarded-for'] ||
  req.connection.remoteAddress ||
  req.socket.remoteAddress ||
  req.connection.socket.remoteAddress;
 let option = {
  hostname:"dm-81.data.aliyun.com",//上圖的接口域名
  path:`/rest/160601/ip/getIpInfo.json?ip=${ip}`,//上圖的path格式 在最后附上你要查詢的IP地址(我這里是獲取的用戶的IP)
  headers:{//設置請求頭
   "Content-Type":"application/json; charset=utf-8",
   "Authorization": "APPCODE 你的appcode",
  }
 };
 let re = https.request(option,(Res)=>{//為了與外層的res區(qū)別故此處響應文件用Res
  Res.setEncoding('utf8');
  if(Res.statusCode===200){//若http狀態(tài)碼為200則請求成功
   Res.on('data', (data) => {
    res.send(data);//將接口返回的數(shù)據(jù)返回到頁面上
   });
  }
 });
 re.on('error', (e) => {
  console.error(`請求遇到問題: ${e.message}`);
 });
 re.end();
});
http.createServer(app).listen(80,'0.0.0.0');//創(chuàng)建服務器實例

然后我們再次訪問 服務器那個頁面返回結(jié)果如下(這里我是本地測試所以返回值為內(nèi)網(wǎng)IP)

 到這里就可以查到訪問用戶的IP所在地了

總結(jié)

以上所述是小編給大家介紹的node.js使用免費的阿里云ip查詢獲取ip所在地,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 實例詳解Nodejs 保存 payload 發(fā)送過來的文件

    實例詳解Nodejs 保存 payload 發(fā)送過來的文件

    這篇文章主要介紹了實例詳解Nodejs 保存 payload 發(fā)送過來的文件 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • express中創(chuàng)建 websocket 接口及問題解答

    express中創(chuàng)建 websocket 接口及問題解答

    本文主要介紹了express中創(chuàng)建 websocket 接口及問題解答,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程

    Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程

    nodejs最大的優(yōu)勢也是大家用著最為難以理解的一點,就是它的異步功能,它幾乎所有的io操作都是異步的,這也就導致很多人不理解也用不習慣,下面這篇文章主要給大家介紹了關(guān)于Node.js查詢MySQL并返回結(jié)果集給客戶端的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • nodejs事件的監(jiān)聽與觸發(fā)的理解分析

    nodejs事件的監(jiān)聽與觸發(fā)的理解分析

    這篇文章主要介紹了nodejs事件的監(jiān)聽與觸發(fā)的理解分析,以實例形式對比分析了nodejs與jQuery關(guān)于事件監(jiān)聽的實用技巧,有助于加深對nodejs的理解,需要的朋友可以參考下
    2015-02-02
  • 詳解nodejs中的process進程

    詳解nodejs中的process進程

    這篇文章主要介紹了nodejs中的process進程,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2017-03-03
  • 利用node+koa+axios實現(xiàn)圖片上傳和回顯功能

    利用node+koa+axios實現(xiàn)圖片上傳和回顯功能

    這篇文章為大家詳細介紹了如何利用node+koa+axios實現(xiàn)圖片上傳和回顯功能,主要實現(xiàn)簡單的圖片上傳和靜態(tài)內(nèi)容的訪問,感興趣的可以了解一下
    2022-05-05
  • Nodejs下用submit提交表單提示cannot post錯誤的解決方法

    Nodejs下用submit提交表單提示cannot post錯誤的解決方法

    這篇文章主要介紹了Nodejs下用submit提交表單提示cannot post錯誤的解決方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • 詳解Node 定時器

    詳解Node 定時器

    這篇文章主要介紹了Node 定時器的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • node.js學習之base64編碼解碼

    node.js學習之base64編碼解碼

    開發(fā)者對Base64編碼肯定很熟悉,是否對它有很清晰的認識就不一定了。實際上Base64已經(jīng)簡單到不能再簡單了,這篇文章給大家通過示例代碼介紹了node.js對字符串和圖片base64編碼解碼的方法,有需要的朋友們可以通過本文來進行學習,下面來一起看看吧。
    2016-10-10
  • 通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程

    通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程

    這篇文章主要介紹了通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程,node-mysql是JavaScript編寫的一個Node的MySQL驅(qū)動,需要的朋友可以參考下
    2016-03-03

最新評論