lua - resty - iputils, Openresty 에서 IP 주 소 를 처리 하 는 실 용적 인 프로그램 함수
2938 단어 openresty
git://www.github.com/hamishforbes/lua-resty-iputils.git
git clone http://www.github.com/hamishforbes/lua-resty-iputils
$ svn co --depth empty http://www.github.com/hamishforbes/lua-resty-iputils
Checked out revision 1.
$ cd repo
$ svn up trunk
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-worker
whitelist = 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) then
return ngx.exit(ngx.HTTP_FORBIDDEN)
end
}
방법.
enable_lrucache
syntax: ok, err = iputils.enable_lrucache(size?)
ip2bin 검색 을 위해 전역 LruCache 대상 을 만 듭 니 다.
크기 는 선택 할 수 있 습 니 다. 기본 값 은 4000 개 입 니 다. (작업 라인 당 ~ 1MB)
반복 호출 캐 시 리 셋
ip2bin
syntax: bin_ip, bin_octets = iputils.ip2bin(ip)
IPv 4 주소 와 8 비트 바이트 당 바 이 너 리 표시 형식 을 포함 하 는 표 의 바 이 너 리 표 시 를 되 돌려 줍 니 다.
오류 메 시 지 를 되 돌려 주 는
nil
오류 메시지parse_cidr
syntax: lower, upper = iputils.parse_cidr(cidr)
IPv 4 네트워크 최저 (네트워크) 와 최고 (방송) 주소 의 바 이 너 리 표시 형식 을 되 돌려 줍 니 다.
parse_cidrs
syntax: parsed = iputils.parse_cidrs(cidrs)
표 형식의 IPV 4 네트워크 표를 가 져 오고 표 containeg 의 표, 아래 주 소 를 되 돌려 줍 니 다.
표 에 잘못된 네트워크 가 존재 하면 오 류 를 기록 하고 다른 네트워크 로 돌아 갑 니 다.
ip_in_cidrs
syntax: bool, err = iputils.ip_in_cidrs(ip, cidrs)
IPv 4 주소 와 해 석 된 CIDRs 표 (예:...
iputils.parse_cidrs
)。 IP 에 IP 가 존재 하면 되 돌려 줍 니 다.
true
혹은 false
;지정 한 네트워크 의 모든 하위 노드 입 니 다.되돌아오다
nil
잘못된 IP 가 있 는 오류 메시지binip_in_cidrs
syntax: bool, err = iputils.binip_in_cidrs(bin_ip, cidrs)
Nginx 바 이 너 리 IPv 4 주소 가 져 오기 (예:.
ngx.var.binary_remote_addr
) CIDRs 표 iputils.parse_cidrs
)。 만약 검 사 된 IP 가 바 이 너 리 표시 형식 으로 사용 된다 면, 이 방법 은
ip_in_cidrs()
훨씬 빠르다.IP 에 IP 가 존재 하면 되 돌려 줍 니 다.
true
혹은 false
;지정 한 네트워크 의 모든 하위 노드 입 니 다.되돌아오다
nil
잘못된 IP 가 있 는 오류 메시지업무
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Openresty 및 Google BigQuery를 사용한 마이크로서비스 사용량 로깅Descartes Labs에서는 플랫폼 구축에 마이크로서비스 아키텍처를 사용해 왔습니다. Descartes Labs의 마이크로서비스 로깅, 특히 사용 로깅의 주요 요구 사항은 전체 위성 이미지 모음에 대한 API 액...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.