国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 13:03:49
字體:
來源:轉載
供稿:網友

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

1.購買服務

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

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

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

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

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


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

2.搭建服務器

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

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

先創建一個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');//創建服務器實例{ "name": "test", "version": "1.0.0", "dependencies": {  "express": "latest" }}//package.json

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

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

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

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


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

下面進入Api的使用

3.Api接口的調用

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

 根據這個我們進行相關的配置

首先我們要引入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

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

https.request使用方法與http.request 一致詳情請見官網文檔(http://nodejs.cn/api/http.html#http_http_request_options_callback)let re = https.request(option,(Res)=>{//為了與外層的res區別故此處響應文件用Res  Res.setEncoding('utf8');  if(Res.statusCode===200){//若http狀態碼為200則請求成功   Res.on('data', (data) => {    res.send(data);//將接口返回的數據返回到頁面上   });  } }); re.on('error', (e) => {  console.error(`請求遇到問題: ${e.message}`); }); re.end();

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

//這里是測試文件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區別故此處響應文件用Res  Res.setEncoding('utf8');  if(Res.statusCode===200){//若http狀態碼為200則請求成功   Res.on('data', (data) => {    res.send(data);//將接口返回的數據返回到頁面上   });  } }); re.on('error', (e) => {  console.error(`請求遇到問題: ${e.message}`); }); re.end();});http.createServer(app).listen(80,'0.0.0.0');//創建服務器實例

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

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

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂托克旗| 婺源县| 育儿| 财经| 五原县| 洪洞县| 宁夏| 桂东县| 五家渠市| 新密市| 沙坪坝区| 图片| 永登县| 河西区| 娱乐| 城口县| 保康县| 茌平县| 武夷山市| 新竹县| 麻栗坡县| 潜江市| 三原县| 通河县| 博罗县| 晋州市| 历史| 山西省| 沭阳县| 双峰县| 赫章县| 同德县| 长葛市| 珠海市| 新绛县| 水城县| 井陉县| 曲沃县| 澎湖县| 磐安县| 监利县|