모듈:IP/doc

Module

모듈: IP는 IP 주소 및 서브넷을 사용하기 위한 라이브러리입니다.IPv4IPv6 의 양쪽 모두를 처리할 수 있습니다.라이브러리는 IPAddress, 서브넷, IPv4CollectionIPv6Collection의 4가지 클래스를 내보냅니다.

라이브러리 로드 중

현지의 아이피 = 요구하다('모듈:IP') 현지의 IP 주소 = 아이피.IP 주소 현지의 서브넷 = 아이피.서브넷 

IP 주소

IPAddress 클래스는 단일 IP 주소로 동작하기 위해 사용됩니다.새 IPAddress 개체를 만들려면 다음 절차를 수행합니다.

현지의 ipAddress(IP 주소) = IP 주소.신규(ipString) 

ipString 변수는 유효한 IPv4 또는 IPv6 주소일 수 있습니다.

예:

현지의 ipv4 주소 = IP 주소.신규('1.2.3.4') 현지의 ipv6 주소 = IP 주소.신규('2001:db8::ff00:12:3456') 

IPAddress 객체는 관계 연산자와 비교할 수 있습니다.

-- 평등 IP 주소.신규('1.2.3.4') == IP 주소.신규('1.2.3.4') -- 참 IP 주소.신규('1.2.3.4') == IP 주소.신규('1.2.3.5') -- false(거짓말  -- 미만/이상 IP 주소.신규('1.2.3.4') < IP 주소.신규('1.2.3.5')  -- 참 IP 주소.신규('1.2.3.4') > IP 주소.신규('1.2.3.5')  -- false(거짓말 IP 주소.신규('1.2.3.4') <=> IP 주소.신규('1.2.3.5') -- 참 IP 주소.신규('1.2.3.4') <=> IP 주소.신규('1.2.3.4') -- 참 

torstring을 사용할 수 있습니다(이는 get을 사용하는 것과 동일합니다).IP):

스트링(IP 주소.신규('1.2.3.4'))                -- "1.2.3.4" 스트링(IP 주소.신규('2001:db8::ff00:12:3456')) -- "2001:db8::ff00:12:3456"  -- 확장 IPv6 주소는 다음과 같이 생략됩니다. 스트링(IP 주소.신규('2001:db8:0:0:0:0:0:0:0:0'))   -- "2001:db8::" 

또한 다음과 같이 연결할 수도 있습니다.

IP 주소.신규('1.2.3.4') .. '푸'                   -- "1.2.3.4 foo" IP 주소.신규('1.2.3.4') .. IP 주소.신규('5.6.7.8') -- "1.2.3.45.6.7.8" 

IPAddress 개체에는 다음과 같은 여러 가지 메서드가 있습니다.

IP를 취득하다

ipAddress(IP 주소):IP를 취득하다() 

IP 주소의 문자열 표현을 반환합니다.IPv6 주소는 가능하면 생략됩니다.

예:

IP 주소.신규('1.2.3.4'):IP를 취득하다()                -- "1.2.3.4" IP 주소.신규('2001:db8::ff00:12:3456'):IP를 취득하다() -- "2001:db8::ff00:12:3456" IP 주소.신규('2001:db8:0:0:0:0:0:0:0:0'):IP를 취득하다()   -- "2001:db8::" 

getVersion

ipAddress(IP 주소):getVersion() 

사용 중인 IP 프로토콜의 버전을 반환합니다.IPv4 주소의 경우는 「IPv4」, IPv6 주소의 경우는 「IPv6」입니다.

예:

IP 주소.신규('1.2.3.4'):getVersion()                -- 「IPv4」 IP 주소.신규('2001:db8::ff00:12:3456'):getVersion() -- 「IPv6」 

ISIPv4

ipAddress(IP 주소):ISIPv4() 

IP 주소가 IPv4 주소인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

예:

IP 주소.신규('1.2.3.4'):ISIPv4()                -- 참 IP 주소.신규('2001:db8::ff00:12:3456'):ISIPv4() -- false(거짓말 

IPv6

ipAddress(IP 주소):IPv6() 

IP 주소가 IPv6 주소인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

예:

IP 주소.신규('1.2.3.4'):IPv6()                -- false(거짓말 IP 주소.신규('2001:db8::ff00:12:3456'):IPv6() -- 참 

is In Subnet

ipAddress(IP 주소):is In Subnet(서브넷) 

IP 주소가 서브넷에 있는 경우 true를 반환합니다.subnet, 그 이외의 경우는 false 입니다. subnet서브넷 오브젝트 또는 CIDR 스트링입니다.

예:

IP 주소.신규('1.2.3.4'):is In Subnet('1.2.3.0/24')                             -- 참 IP 주소.신규('1.2.3.4'):is In Subnet('1.2.4.0/24')                             -- false(거짓말 IP 주소.신규('1.2.3.4'):is In Subnet(서브넷.신규('1.2.3.0/24'))                 -- 참 IP 주소.신규('2001:db8::ff00:12:3456'):is In Subnet('2001:db8::ff00:12:0/112') -- 참 

서브넷을 취득하다

ipAddress(IP 주소):서브넷을 취득하다(비트 길이) 

비트 길이의 서브넷 개체를 반환합니다.bitLength현재 IP가 포함되어 있습니다.bitLength파라미터는, IPv4 주소의 경우는 0 ~32 의 정수, IPv6 주소의 경우는 0 ~128 의 정수여야 합니다.

예:

IP 주소.신규('1.2.3.4'):서브넷을 취득하다(24) -- Subnet.new ('1.2.3.0/24')에 상당합니다. 

Next IP를 취득하다

ipAddress(IP 주소):Next IP를 취득하다() 

현재 IP 주소에 해당하는 새 IPAddress 개체를 1씩 증분하여 반환합니다.IPv4 주소 「255.255.255.255」는 「0.0.0」으로 롤오버 하고, IPv6 주소 「fff:fff:fff:fff:fff:fff:fff:fff:fff:fff:fff:fff」는 「:」로 롤오버 합니다.

예:

IP 주소.신규('1.2.3.4'):Next IP를 취득하다()                -- IPAddress.new('1.2.3.5')에 상당합니다. IP 주소.신규('2001:db8::ff00:12:3456'):Next IP를 취득하다() -- IPAddress.new ('2001:db8:ff00:12:3457')에 상당합니다. IP 주소.신규('255.255.255.255'):Next IP를 취득하다()        -- IPAddress.new('0.0.0')에 상당합니다. 

이전을 취득하다아이피

ipAddress(IP 주소):이전을 취득하다아이피() 

현재 IP 주소에 해당하는 새 IPAddress 개체를 1씩 감소시킵니다.IPv4 주소 「0.0.0」은 「255.255.255」로 롤오버 하고, IPv6 주소 「:」는 「fff:fff:fff:fff:fff:fff:fff:fff:fff:fff:fff:fff:fff:fff」로 롤오버 합니다.

예:

IP 주소.신규('1.2.3.4'):이전을 취득하다아이피()                -- IPAddress.new('1.2.3.3')에 상당합니다. IP 주소.신규('2001:db8::ff00:12:3456'):이전을 취득하다아이피() -- IPAddress.new ('2001:db8:ff00:12:3455')에 상당합니다. IP 주소.신규('0.0.0.0'):이전을 취득하다아이피()                -- IPAddress.new('255.255.255.255')에 상당합니다. 

서브넷

Subnet 클래스는, IPv4 또는 IPv6 주소의 서브 네트워크를 조작하기 위해서 사용됩니다.새 서브넷 개체를 만들려면:

현지의 서브넷 = 서브넷.신규(cidrString) 

cidrString유효한 IPv4 또는 IPv6 CIDR 문자열이어야 합니다.

서브넷 개체를 비교하여 동등함을 확인할 수 있습니다.

서브넷.신규('1.2.3.0/24') == 서브넷.신규('1.2.3.0/24')                           -- 참 서브넷.신규('1.2.3.0/24') == 서브넷.신규('1.2.3.0/25')                           -- false(거짓말 서브넷.신규('1.2.3.0/24') == 서브넷.신규('2001:db8::ff00:12:0/112')              -- false(거짓말 서브넷.신규('2001:db8::ff00:12:0/112') == 서브넷.신규('2001:db8::ff00:12:0/112') -- 참 서브넷.신규('2001:db8:0:0:0:0:0/112') == 서브넷.신규('2001:db8:/112')         -- 참 

torstring을 사용할 수 있습니다(이는 getCIDR에 해당합니다).

스트링(서브넷.신규('1.2.3.0/24'))               -- "1.2.3.0/24" 스트링(서브넷.신규('2001:db8::ff00:12:0/112'))  -- "2001:db8::ff00:12:0/112" 스트링(서브넷.신규('2001:db8:0:0:0:0:0/112')) -- "2001:db8:/112" 

또한 다음과 같이 연결할 수도 있습니다.

서브넷.신규('1.2.3.0/24') .. '푸'                   -- "1.2.3.0/24 foo" 서브넷.신규('1.2.3.0/24') .. 서브넷.신규('4.5.6.0/24') -- "1.2.3.0/244.5.6.0/24" 

서브넷 개체에는 다음과 같은 여러 가지 메서드가 있습니다.

get Prefix(프리픽스)

서브넷:get Prefix(프리픽스)() 

서브넷 내의 최소 IP 주소의 IPAddress 개체를 반환합니다.

예:

서브넷.신규('1.2.3.0/24'):get Prefix(프리픽스)()              -- IPAddress.new('1.2.3.0')에 상당합니다. 서브넷.신규('2001:db8::ff00:12:0/112'):get Prefix(프리픽스)() -- IPAddress.new ('2001:db8:ff00:12:0')에 상당합니다. 

가장 높은 값을 취득아이피

서브넷:가장 높은 값을 취득아이피() 

서브넷에서 가장 높은 IP 주소의 IPAddress 개체를 반환합니다.

예:

서브넷.신규('1.2.3.0/24'):가장 높은 값을 취득아이피()              -- IPAddress.new('1.2.3.255')에 상당합니다. 서브넷.신규('2001:db8::ff00:12:0/112'):가장 높은 값을 취득아이피() -- IPAddress.new ('2001:db8:ff00:12:fff')에 상당합니다. 

getBitLength

서브넷:getBitLength() 

서브넷의 비트 길이를 반환합니다.IPv4 주소의 경우는 0 ~32 의 정수, IPv6 주소의 경우는 0 ~128 의 정수입니다.

예:

서브넷.신규('1.2.3.0/24'):getBitLength()              -- 24 서브넷.신규('2001:db8::ff00:12:0/112'):getBitLength() -- 112 

CIDR을 취득하다

서브넷:CIDR을 취득하다() 

서브넷의 CIDR 문자열 표현을 반환합니다.

예:

서브넷.신규('1.2.3.0/24'):CIDR을 취득하다()               -- "1.2.3.0/24" 서브넷.신규('2001:db8::ff00:12:0/112'):CIDR을 취득하다()  -- "2001:db8::ff00:12:0/112" 서브넷.신규('2001:db8:0:0:0:0:0/112'):CIDR을 취득하다() -- "2001:db8:/112" 

getVersion

서브넷:getVersion() 

사용 중인 IP 프로토콜의 버전을 반환합니다.IPv4 주소의 경우는 「IPv4」, IPv6 주소의 경우는 「IPv6」입니다.

예:

서브넷.신규('1.2.3.0/24'):getVersion()              -- 「IPv4」 서브넷.신규('2001:db8::ff00:12:0/112'):getVersion() -- 「IPv6」 

ISIPv4

서브넷:ISIPv4() 

서브넷이 IPv4 를 사용하고 있는 경우는 true 를 반환하고, 그렇지 않은 경우는 false 를 반환합니다.

예:

서브넷.신규('1.2.3.0/24'):ISIPv4()              -- 참 서브넷.신규('2001:db8::ff00:12:0/112'):ISIPv4() -- false(거짓말 

IPv6

서브넷:IPv6() 

서브넷이 IPv6 를 사용하고 있는 경우는 true 를 반환하고, 그렇지 않은 경우는 false 를 반환합니다.

예:

서브넷.신규('1.2.3.0/24'):IPv6()              -- false(거짓말 서브넷.신규('2001:db8::ff00:12:0/112'):IPv6() -- 참 

포함하다아이피

서브넷:포함하다아이피(아이피) 

서브넷에 IP 주소가 포함되어 있으면 true를 반환합니다.ip, 그 이외의 경우는 false 입니다. ip는 IP 주소 문자열 또는 IPAddress 개체일 수 있습니다.

예:

서브넷.신규('1.2.3.0/24'):포함하다아이피('1.2.3.4')                             -- 참 서브넷.신규('1.2.3.0/24'):포함하다아이피('1.2.4.4')                             -- false(거짓말 서브넷.신규('1.2.3.0/24'):포함하다아이피(IP 주소.신규('1.2.3.4'))              -- 참 서브넷.신규('2001:db8::ff00:12:0/112'):포함하다아이피('2001:db8::ff00:12:3456') -- 참 

중복 서브넷

서브넷:중복 서브넷(서브넷) 

현재 서브넷이 다음 서브넷과 겹치면 true를 반환합니다.subnet, 그 이외의 경우는 false 입니다. subnet는 CIDR 문자열 또는 서브넷오브젝트입니다

예:

서브넷.신규('1.2.3.0/24'):중복 서브넷('1.2.0.0/16')                         -- 참 서브넷.신규('1.2.3.0/24'):중복 서브넷('1.2.12.0/22')                        -- false(거짓말 서브넷.신규('1.2.3.0/24'):중복 서브넷(서브넷.신규('1.2.0.0/16'))             -- 참 서브넷.신규('2001:db8::ff00:12:0/112'):중복 서브넷('2001:db8::ff00:0:0/96') -- 참 

걸어.

서브넷:걸어.() 

워크 메서드는 서브넷 내의 모든 IPAddress 개체에 대해 반복합니다.

예:

위해서 ipAddress(IP 주소)  서브넷.신규('192.168.0.0/30'):걸어.() 하다  .로그.(스트링(ipAddress(IP 주소))) 끝. -- 192.168.0.0 -- 192.168.0.1 -- 192.168.0.2 -- 192.168.0.3 

IPv4 컬렉션

IPv4 Collection 클래스는, 복수의 다른 IPv4 주소 및 IPv4 서브넷을 조작하기 위해서 사용됩니다.새 IPv4Collection 개체를 만들려면:

현지의 수집 = IPv4 컬렉션.신규() 

IPv4Collection 개체에는 다음과 같은 몇 가지 메서드가 있습니다.

getVersion

수집:getVersion() 

문자열 "IPv4"를 반환합니다.

add IP

수집:add IP(아이피) 

컬렉션에 IP를 추가합니다.IP는 문자열 또는 IPAddress 개체 중 하나입니다.

예:

수집:add IP('1.2.3.4') 수집:add IP(IP 주소.신규('1.2.3.4')) 

이 방법은 체인 가능합니다.

수집:add IP('1.2.3.4'):add IP('5.6.7.8') 

addSubnet(서브넷 추가)

수집:addSubnet(서브넷 추가)(서브넷) 

컬렉션에 서브넷을 추가합니다.서브넷은 CIDR 문자열 또는 서브넷오브젝트 중 하나입니다.

예:

수집:addSubnet(서브넷 추가)('1.2.3.0/24') 수집:addSubnet(서브넷 추가)(서브넷.신규('1.2.3.0/24')) 

이 방법은 체인 가능합니다.

수집:addSubnet(서브넷 추가)('1.2.0.0/24'):addSubnet(서브넷 추가)('1.2.1.0/24') 

addFromString

수집:addFromString(스트레이트) 

모든 IPv4 주소 및 IPv4 CIDR 서브넷을str컬렉션에 추가합니다.IPv4 주소 또는 CIDR 서브넷이 아닌 텍스트는 무시됩니다.

예:

수집:addFromString('일부 IP 및 서브넷 추가: 1.2.3.4 1.2.5 2001:0::f foo 1.2.4.0/24') 

이 방법은 체인 가능합니다.

수집:addFromString('foo 1.2.3.4'):addFromString('바 5.6.7.8') 

포함하다아이피

수집:포함하다아이피(아이피) 

컬렉션에 지정된 IP가 포함되어 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.ip파라미터는 문자열 또는 IPAddress 객체입니다.

예:

수집:포함하다아이피('1.2.3.4') 수집:포함하다아이피(IP 주소.신규('1.2.3.4')) 

범위 설정

수집:범위 설정() 

컬렉션에 해당하는 정렬된 IP 쌍의 배열을 반환합니다.각 IP 쌍은 쌍[1]부터 쌍[2]까지 연속된 범위의 IP 주소를 나타내는 배열입니다.쌍[1] 및 쌍[2]은 IPAddress 객체입니다.

예:

수집:addSubnet(서브넷 추가)('1.2.0.0/24') 수집:addSubnet(서브넷 추가)('1.2.1.0/24') 수집:addSubnet(서브넷 추가)('1.2.10.0/24') .log Object(로그 오브젝트)(수집:범위 설정()) -- 다음을 기록합니다. -- 표 #1 { -- 표 #2 { --     1.2.0.0, --     1.2.1.255, --   }, -- 표 #3 { --     1.2.10.0, --     1.2.10.255, --   }, -- } 

중복 서브넷

수집:중복 서브넷(서브넷) 

true를 반환한다.obj ifsubnet는 이 컬렉션을 오버랩합니다.obj는 서브넷과 오버랩하는 첫 번째 IPAddress 또는 서브넷오브젝트입니다그렇지 않으면 false를 반환합니다. subnet는 CIDR 문자열 또는 서브넷오브젝트입니다

예:

수집:add IP('1.2.3.4') 수집:중복 서브넷('1.2.3.0/24') -- true, IPAddress.new('1.2.3.4') 수집:중복 서브넷('1.2.4.0/24') -- false(거짓말 

IPv6 수집

IPv6 Collection 클래스는, 복수의 다른 IPv6 주소 및 IPv6 서브넷에 대해 동작하기 위해서 사용됩니다.IPv6Collection 객체는 IPv4Collection 객체와 직접 유사합니다.이 객체는 동일한 메서드를 포함하고 동일한 방식으로 작동하지만 추가된 모든 IP 주소와 서브넷은 IPv4가 아닌 IPv6이어야 합니다.

새 IPv6Collection 개체를 만들려면:

현지의 수집 = IPv6 수집.신규()