lua-resty-iputils, 在Openresty中,用于处理IP地址的实用程序函数
?
- 源代碼名稱:lua-resty-iputils
- 源代碼網址:http://www.github.com/hamishforbes/lua-resty-iputils
- lua-resty-iputils源代碼文檔
- lua-resty-iputils源代碼下載
- Git URL:
復制代碼
git://www.github.com/hamishforbes/lua-resty-iputils.git - Git Clone代碼到本地:
復制代碼
git clone http://www.github.com/hamishforbes/lua-resty-iputils - Subversion代碼到本地:
復制代碼
$ 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地址的實用程序函數集合。
概述
復制代碼
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?)
創建一個全局LruCache對象用于緩存ip2bin查找。
大小是可選的,默認值為 4000條( 每個工作線程 ~1MB )
反復調用將重置緩存
ip2bin
syntax: bin_ip, bin_octets = iputils.ip2bin(ip)
返回IPv4地址和包含每個八位字節的二進制表示形式的表的二進制表示。
返回錯誤消息的nil?和錯誤消息
parse_cidr
syntax: lower, upper = iputils.parse_cidr(cidr)
返回IPv4網絡最低( 網絡) 和最高( 廣播) 地址的二進制表示形式。
parse_cidrs
syntax: parsed = iputils.parse_cidrs(cidrs)
獲取一個表格格式的IPV4網絡表,并返回一個表格containg的表格,下面的地址。
如果表中存在無效網絡,則記錄錯誤并返回其他網絡
ip_in_cidrs
syntax: bool, err = iputils.ip_in_cidrs(ip, cidrs)
獲取一個字符串IPv4地址和一個已經解析的CIDRs表( 比如。 來自?iputils.parse_cidrs?)。
如果IP中存在 IP,則返回一個?true?或者?false?;指定的網絡的任何子節點。
返回?nil?和帶有無效IP的錯誤消息
binip_in_cidrs
syntax: bool, err = iputils.binip_in_cidrs(bin_ip, cidrs)
獲取 Nginx 二進制IPv4地址( 比如。?ngx.var.binary_remote_addr?) 和解析的CIDRs表( 比如。 來自?iputils.parse_cidrs?)。
如果所檢查的IP已經作為二進制表示形式可用,這里方法比?ip_in_cidrs()?快得多。
如果IP中存在 IP,則返回一個?true?或者?false?;指定的網絡的任何子節點。
返回?nil?和帶有無效IP的錯誤消息
待辦事項
- IPv6支持- 支持IPv6的備用庫-?lua-libcidr-ffi
總結
以上是生活随笔為你收集整理的lua-resty-iputils, 在Openresty中,用于处理IP地址的实用程序函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《视频直播技术详解》系列之七:现代播放器
- 下一篇: OpenResty简介及学习笔记