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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/2/28 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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地址的实用程序函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。