国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

openResty IP數(shù)據(jù)庫(kù)

nodejh / 2580人閱讀

摘要:數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)之版,為了方便使用數(shù)據(jù)所封裝的拓展包。使用方式本腳本封裝了的主要接口配制好后就可以直接使用,并不需要再去復(fù)雜的內(nèi)部實(shí)現(xiàn)。同樣希望這個(gè)腳本能提供給官方推薦腳本。

openResty IP數(shù)據(jù)庫(kù)

ipip.net IP數(shù)據(jù)庫(kù)之openresty版,為了方便nginx使用ip 數(shù)據(jù)所封裝的拓展包。

使用方式

本腳本封裝了ipip.net的主要接口配制好后就可以直接使用,并不需要再去復(fù)雜的內(nèi)部實(shí)現(xiàn)。

需要注意的是如果使用api訪問(wèn)需要http拓展包。

代碼我已提交至GitHub: https://github.com/icowan/lua-resty-17mon

如果對(duì)lua不了解請(qǐng)看我前段時(shí)間寫(xiě)的: 《Lua基礎(chǔ)學(xué)習(xí)方式 (一天學(xué)會(huì)) 》

如果還沒(méi)安裝openresty請(qǐng)看: 《優(yōu)雅的安裝openresty 》

`

nginx 配制

要使用首先得載入自己寫(xiě)義的lualib,這個(gè)根據(jù)你安裝的或使用方式去修改路徑。

lua_package_path "/usr/local/openresty/lualib/?.lua;/var/www/lua-resty-17mon/lualib/?.lua;;";
lua_package_cpath "/usr/local/openresty/lualib/?.so;;";

error_log /var/www/lua-resty-17mon/logs/lua-resty-17mon.debug.log debug;

server {
    listen 8080;
    server_name localhost;
    charset utf-8;
    location /ipLocation {
        resolver 8.8.8.8; # 如果要使用api的話 需要dns 這可以改成中國(guó)的會(huì)快一些
        default_type "text/plain";
        content_by_lua_file "/var/www/lua-resty-17mon/script/ip_location.lua";
    }
}
lua 腳本使用
-- /var/www/lua-resty-17mon/script/ip_location.lua

ngx.req.read_body()
ngx.header.content_type = "application/json;charset=UTF-8"

local cjson = require "cjson"

local success = function(con)
    return cjson.encode({
        success = true,
        body = con
    })
end

local failure = function(err)
    return cjson.encode({
        success = false,
        errors = err
    })
end

-- 參數(shù)獲取
local request_args = ngx.req.get_uri_args()
local ip_address = request_args["ip"]

-- 如果不需要驗(yàn)證可以不用此拓展
local checkIp = require("ip_check"):new(ip_address)

-- 驗(yàn)證ip
local ok, err = checkIp:checkIp()
if not ok then
    ngx.say(failure(err))
    return
end

-- 使用本地?cái)?shù)據(jù)庫(kù)
local ipdetail, err = require("ip_location"):new(ip_address, "/var/www/lua-resty-17mon/file/17monipdb.dat")
if not ipdetail then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

local ipLocation, err = ipdetail:location()
if not ipLocation then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

ngx.say(success(ipLocation))
通過(guò)免費(fèi)api獲取ip信息

如果通過(guò)api獲取數(shù)據(jù)需要使用http服務(wù),這里需要使用lua-resty-http
這里我已經(jīng)把它直接放到lualib/resty目錄了,可以直接使用 感謝pintsized提供的腳本

-- /var/www/lua-resty-17mon/script/ip_location.lua

local ipdetail, err = require("ip_location"):new(ip_address)
if not ipdetail then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

local ipLocation, err = ipdetail:locationApiFree()
if not ipLocation then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

ngx.say(success(ipLocation))
通過(guò)付費(fèi)api獲取ip信息
-- /var/www/lua-resty-17mon/script/ip_location.lua

local ipdetail, err = require("ip_location"):new(ip_address, "", "your token")
if not ipdetail then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

local ipLocation, err = ipdetail:locationApiFree()
if not ipLocation then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

ngx.say(success(ipLocation))
獲取aip使用狀態(tài)
-- /var/www/lua-resty-17mon/script/ip_location.lua

local ipdetail, err = require("ip_location"):new(ip_address, "your token")
if not ipdetail then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

local ipLocation, err = ipdetail:apiStatus()
if not ipLocation then
    ngx.log(ngx.ERR, err)
    ngx.say(failure(err))
    return
end

ngx.say(success(ipLocation))
返回?cái)?shù)據(jù)結(jié)構(gòu)

Response

返回類型: JSON

參數(shù) 類型 備注
success bool true or false
errors or body string 當(dāng)success為false時(shí)errors有值否則返回body

body返回參數(shù)詳情

參數(shù) 類型 備注
country string 國(guó)家
city string 省會(huì)或直轄市(國(guó)內(nèi))
region string 地區(qū)或城市 (國(guó)內(nèi))
place string 學(xué)校或單位 (國(guó)內(nèi))
operator string 運(yùn)營(yíng)商字段
latitude string 緯度
longitude string 經(jīng)度
timeZone string 時(shí)區(qū)一, 可能不存在
timeZoneCode string 時(shí)區(qū)碼
administrativeAreaCode string 中國(guó)行政區(qū)劃代碼
internationalPhoneCode string 國(guó)際電話代碼
countryTwoDigitCode string 國(guó)家二位代碼
worldContinentCode string 世界大洲代碼

返回結(jié)果參考:

{
    "success": true,
    "body": {
        "country": "",  // 國(guó)家
        "city": "",  // 省會(huì)或直轄市(國(guó)內(nèi))
        "region": "",  // 地區(qū)或城市 (國(guó)內(nèi))
        "place": "",  // 學(xué)?;騿挝?(國(guó)內(nèi))
        "operator": "",  // 運(yùn)營(yíng)商字段(只有購(gòu)買了帶有運(yùn)營(yíng)商版本的數(shù)據(jù)庫(kù)才會(huì)有)
        "latitude": "",  // 緯度     (每日版本提供)
        "longitude": "",  // 經(jīng)度     (每日版本提供)
        "timeZone": "",  // 時(shí)區(qū)一, 可能不存在  (每日版本提供)
        "timeZoneCode": "",  // 時(shí)區(qū)碼, 可能不存在  (每日版本提供)
        "administrativeAreaCode": "",  // 中國(guó)行政區(qū)劃代碼    (每日版本提供)
        "internationalPhoneCode": "",  // 國(guó)際電話代碼        (每日版本提供)
        "countryTwoDigitCode": "",  // 國(guó)家二位代碼        (每日版本提供)
        "worldContinentCode": ""  // 世界大洲代碼        (每日版本提供)
    }
}

ERROR結(jié)果參考

{
    "success": false,
    "erros": "retun messages..."
}

查詢狀態(tài)結(jié)果參考

{
    "success": true,
    "body": {
        "limit": false, // 是否已受訪問(wèn)限制
       "hour": 99680,  // 一個(gè)小時(shí)內(nèi)剩余次數(shù)
       "day": 999680,  // 24小時(shí)內(nèi)剩余次數(shù)
    }
}
尾巴

難得為開(kāi)源社區(qū)貢獻(xiàn)一份力量,希望有同樣需求的同學(xué)們可以不用再去寫(xiě)復(fù)雜的底層邏輯,應(yīng)該更多的把時(shí)間估計(jì)業(yè)務(wù)流程上。

同樣希望這個(gè)腳本能提供給ipip.net官方推薦腳本。

或訪問(wèn)我 網(wǎng)站: LatteCake

本文地址: http://lattecake.com/post/20102

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/39376.html

相關(guān)文章

  • (學(xué)習(xí)到實(shí)踐)七、mongodb測(cè)試,php+nginx負(fù)載均衡的部署

    摘要:運(yùn)行容器意外的官方參考地址,多次嘗試命令最終無(wú)法運(yùn)行,帶項(xiàng)時(shí)后是狀態(tài),修改配置沒(méi)反應(yīng)日志無(wú)報(bào)錯(cuò)退出。目前容器整體情況是主從,個(gè)相同一個(gè)。后續(xù)運(yùn)行的容器數(shù)視情況而定。接下來(lái)計(jì)劃針對(duì),一些實(shí)際應(yīng)用場(chǎng)景進(jìn)行實(shí)踐驗(yàn)證。 目標(biāo)需求: 密碼登錄+容器數(shù)據(jù)共享,主從復(fù)制 1.配置啟動(dòng) 添加配置文件夾,組織容器命令。 a.官方未提供相關(guān)信息 從測(cè)試容器中匹配搜索得到 mongod.conf.orig,...

    fyber 評(píng)論0 收藏0
  • Mac下使用ABTestingGateway快速搭建灰度網(wǎng)關(guān)

    摘要:下使用快速搭建灰度網(wǎng)關(guān)簡(jiǎn)介是新浪開(kāi)源的一個(gè)可以動(dòng)態(tài)設(shè)置分流策略的灰度發(fā)布系統(tǒng),工作在層,基于和開(kāi)發(fā),使用作為分流策略數(shù)據(jù)庫(kù),可以實(shí)現(xiàn)動(dòng)態(tài)調(diào)度功能。目前在京東如實(shí)時(shí)價(jià)格秒殺動(dòng)態(tài)服務(wù)單品頁(yè)列表頁(yè)等都在使用架構(gòu),其他公司如淘寶去哪兒網(wǎng)等。 Mac下使用ABTestingGateway快速搭建灰度網(wǎng)關(guān) ABTestingGateway簡(jiǎn)介 ABTestingGateway 是新浪開(kāi)源的一個(gè)可以...

    2bdenny 評(píng)論0 收藏0
  • 如何在云幫上配置https

    摘要:云幫所有的對(duì)外服務(wù)都配置在負(fù)載均衡上,都是通過(guò)負(fù)載均衡轉(zhuǎn)發(fā)到對(duì)應(yīng)的應(yīng)用與服務(wù)。大概的操作流程如下那么接下來(lái)就說(shuō)說(shuō)如何具體去配置。測(cè)試即可,如果多節(jié)點(diǎn)配置直接配置就了。配置到這里,云幫已經(jīng)配置完成了。 序 相關(guān)組件介紹 本次分享主要涉及到兩個(gè)模塊console模塊和openresty模塊。 console模塊 即云幫(ACP)控制臺(tái)模塊,為用戶提供可視化Web操作界面,監(jiān)聽(tīng)443端口即可...

    馬龍駒 評(píng)論0 收藏0
  • OpenrestyOpenresty增加waf配置

    摘要:說(shuō)明防止注入,本地包含,部分溢出,測(cè)試,等攻擊防止備份之類文件泄漏防止之類壓力測(cè)試工具的攻擊屏蔽常見(jiàn)的掃描黑客工具,掃描器屏蔽異常的網(wǎng)絡(luò)請(qǐng)求屏蔽圖片附件類目錄執(zhí)行權(quán)限防止上傳下載使用使用安裝下載解壓后,將整放到目錄中,并命名為配置安裝路徑假 1. Ngx lua waf 說(shuō)明 防止sql注入,本地包含,部分溢出,fuzzing測(cè)試,xss,SSRF等web攻擊防止svn/備份之類文件泄...

    iliyaku 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<