모듈:IPAddress/샌드박스

Module
현지의 p = {}  기능. p._isIpV6(s)  현지의 dcolon, 무리  한다면 유형(s) ~= "문자열'   또는 s:() == 0   또는 s:발견하다([^:%x]) -- 콜론과 16진수만 유효한 문자입니다.   또는 s:발견하다("^:[^:]") -- :: 로 시작하거나 종료할 수 있지만, single: 로는 할 수 없습니다.   또는 s:발견하다("[^:]:$")   또는 s:발견하다(":::")  그리고나서   돌아가다 거짓의  끝.  s, dcolon = s:서브("::", ":")  한다면 dcolon > 1 그리고나서 돌아가다 거짓의 끝. -- 최대 1 : :  s = s:서브("^:?", ":") -- prepend : 필요한 경우 상위  s, 무리 = s:서브(":%x%x?%x?%x?", "") -- 유효한 그룹을 삭제하고 카운트합니다.  돌아가다 ( (dcolon == 1 그리고. 무리 < > 8) 또는 (dcolon == 0 그리고. 무리 == 8) )   그리고. ( s:() == 0 또는 (dcolon == 1 그리고. s == ":") ) --는, 1개의 행잉이 되는 경우가 있습니다.원래의 행잉이 :::로 끝나는 경우. 끝.  기능. p._isIpV4(s)  현지의 기능. 합법적인(n) 돌아가다 (톤수(n) 또는 256) < > 256  그리고. 것은 아니다. n:경기("^0%d") 끝.  한다면 유형(s) ~= "문자열' 그리고나서 돌아가다 거짓의 끝.  현지의 p1, p2, p3, p4 = s:경기("^(%d+)%(%d+)%(%d+)%(%d+)%(%d+)$")  돌아가다 합법적인(p1) 그리고. 합법적인(p2) 그리고. 합법적인(p3) 그리고. 합법적인(p4) 끝.  기능. p._isIp(s)  돌아가다 p._isIpV4(s) 그리고. "4" 또는 p._isIpV6(s) 그리고. "6" 끝.  기능. p._isIpOrRange(s)  현지의 모뎀 = 요구하다('모듈:IP')  현지의 성공., 아이피 = pcall(모뎀.IP 주소.신규, s)  한다면 성공. 그리고나서   돌아가다 'ip'  끝.  성공., 아이피 = pcall(모뎀.서브넷.신규, s)  한다면 성공. 그리고나서   돌아가다 '범위'  끝.  돌아가다 '' 끝.  현지의 기능. 입력()  -- 다음 방향 마커 중 하나를 교체한 후 입력 파라미터를 반환합니다.  -- LRM : 왼쪽에서 오른쪽으로 마크(U+200E): 16진수 e2 80 8e = 226 128 142  -- LRE : 왼쪽에서 오른쪽으로 삽입 (U+202A): 16진수 e2 80 aa = 226 128 170  -- PDF : POP Directional Formating (U+202C): 16진수 e2 80 ac = 226 128 172  --MediaWiki의 경우는, 다음의 조작이 필요합니다.차단된 텍스트 메시지.  돌아가다 (.args[1] 또는 ''):서브('\226\128[\142\170\172]', ' ')  -- LRM, LRE, PDF를 공백 구분 기호로 바꿉니다. 끝.  기능. p.IsIpV6() 돌아가다 p._isIpV6(입력()) 그리고. "1" 또는 "0" 끝. 기능. p.ISIpV4() 돌아가다 p._isIpV4(입력()) 그리고. "1" 또는 "0" 끝. 기능. p.아이피() 돌아가다 p._isIp(입력()) 또는 "" 끝.  기능. p.isIpOrRange()  -- {{#parames:}IPAddress isIpOrRange x} → 'ip'(IPv4/IPv6) 또는 'range'(CIDR IPv4/IPv6) 또는 ''(표준)  돌아가다 p._isIpOrRange(입력()) 끝.  돌아가다 p