日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

lua-resty-iputils, 在Openresty中,用于处理IP地址的实用程序函数

發(fā)布時(shí)間:2024/2/28 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lua-resty-iputils, 在Openresty中,用于处理IP地址的实用程序函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

  • 源代碼名稱:lua-resty-iputils
  • 源代碼網(wǎng)址:http://www.github.com/hamishforbes/lua-resty-iputils
  • lua-resty-iputils源代碼文檔
  • lua-resty-iputils源代碼下載
  • Git URL:

    復(fù)制代碼

    git://www.github.com/hamishforbes/lua-resty-iputils.git
  • Git Clone代碼到本地:

    復(fù)制代碼

    git clone http://www.github.com/hamishforbes/lua-resty-iputils
  • Subversion代碼到本地:

    復(fù)制代碼

    $ svn co --depth empty http://www.github.com/hamishforbes/lua-resty-iputils Checked out revision 1. $ cd repo $ svn up trunk

lua-resty-iputils

用于處理IP地址的實(shí)用程序函數(shù)集合。

概述

復(fù)制代碼

init_by_lua_block {local iputils = require("resty.iputils")iputils.enable_lrucache()local whitelist_ips = {"127.0.0.1","10.10.10.0/24","192.168.0.0/16",}-- WARNING: Global variable, recommend this is cached at the module level-- https://github.com/openresty/lua-nginx-module#data-sharing-within-an-nginx-workerwhitelist = iputils.parse_cidrs(whitelist_ips)}access_by_lua_block {local iputils = require("resty.iputils")if not iputils.ip_in_cidrs(ngx.var.remote_addr, whitelist) thenreturn ngx.exit(ngx.HTTP_FORBIDDEN)end}

方法

enable_lrucache

syntax: ok, err = iputils.enable_lrucache(size?)

創(chuàng)建一個(gè)全局LruCache對(duì)象用于緩存ip2bin查找。

大小是可選的,默認(rèn)值為 4000條( 每個(gè)工作線程 ~1MB )

反復(fù)調(diào)用將重置緩存

ip2bin

syntax: bin_ip, bin_octets = iputils.ip2bin(ip)

返回IPv4地址和包含每個(gè)八位字節(jié)的二進(jìn)制表示形式的表的二進(jìn)制表示。

返回錯(cuò)誤消息的nil?和錯(cuò)誤消息

parse_cidr

syntax: lower, upper = iputils.parse_cidr(cidr)

返回IPv4網(wǎng)絡(luò)最低( 網(wǎng)絡(luò)) 和最高( 廣播) 地址的二進(jìn)制表示形式。

parse_cidrs

syntax: parsed = iputils.parse_cidrs(cidrs)

獲取一個(gè)表格格式的IPV4網(wǎng)絡(luò)表,并返回一個(gè)表格containg的表格,下面的地址。

如果表中存在無效網(wǎng)絡(luò),則記錄錯(cuò)誤并返回其他網(wǎng)絡(luò)

ip_in_cidrs

syntax: bool, err = iputils.ip_in_cidrs(ip, cidrs)

獲取一個(gè)字符串IPv4地址和一個(gè)已經(jīng)解析的CIDRs表( 比如。 來自?iputils.parse_cidrs?)。

如果IP中存在 IP,則返回一個(gè)?true?或者?false?;指定的網(wǎng)絡(luò)的任何子節(jié)點(diǎn)。

返回?nil?和帶有無效IP的錯(cuò)誤消息

binip_in_cidrs

syntax: bool, err = iputils.binip_in_cidrs(bin_ip, cidrs)

獲取 Nginx 二進(jìn)制IPv4地址( 比如。?ngx.var.binary_remote_addr?) 和解析的CIDRs表( 比如。 來自?iputils.parse_cidrs?)。

如果所檢查的IP已經(jīng)作為二進(jìn)制表示形式可用,這里方法比?ip_in_cidrs()?快得多。

如果IP中存在 IP,則返回一個(gè)?true?或者?false?;指定的網(wǎng)絡(luò)的任何子節(jié)點(diǎn)。

返回?nil?和帶有無效IP的錯(cuò)誤消息

待辦事項(xiàng)

  • IPv6支持- 支持IPv6的備用庫-?lua-libcidr-ffi

總結(jié)

以上是生活随笔為你收集整理的lua-resty-iputils, 在Openresty中,用于处理IP地址的实用程序函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。