ip matching
Release 2.1.2

ips와 관련하여 편리한 기능이있는 독립형 모듈 :
npm install --save ip-matching
# or
yarn add ip-matching포함 된 문서가 포함 된 자체 내장형 타입 스크립트 선언이 제공됩니다.
import { getMatch , IPMatch , IPSubnetwork , IPRange , matches } from 'ip-matching' ;
// matches(ip: string | IP, target: string | IPMatch): boolean;
matches ( '10.0.0.1' , '10.0.0.0/24' ) ; // true
matches ( '10.0.1.1' , '10.0.0.0/24' ) ; // false
matches ( 'abc::def' , 'abc:*::def' ) ; // true
matches ( 'abc::def' , 'abc:9::def' ) ; // false
matches ( '0001:2:3:4:5:6:7' , '1:2:3:4:5:6:7' ) ; // true
// getMatch returns an instance of
// IPv4, IPv6, IPRange, IPSubnetwork or IPMask, all extending IPMatch
const mySubnet : IPMatch = getMatch ( 'fefe::0001:abcd/112' ) ;
mySubnet . type ; // 'IPSubnetwork'
mySubnet instanceof IPSubnetwork ; // true
mySubnet instanceof IPMatch ; // true
mySubnet . toString ( ) ; // 'fefe::1:0/112'
mySubnet . matches ( 'FEFE::1:bbbb' ) ; // true
mySubnet . matches ( 'FEFE::2:bbbb' ) ; // false
mySubnet . equals ( new IPSubnetwork ( new IPv6 ( 'fefe::1:abcd' ) , 112 ) ) ; // true
mySubnet . getAmount ( ) ; // 65536
( mySubnet as IPSubnetwork ) . getLast ( ) . toString ( ) ; // 'fefe::1:ffff'
const myIp = new IPv6 ( 'a:0:0::B:0:C' ) ;
myIp . toString ( ) ; // 'a::b:0:c'
myIp . toLongString ( ) ; // 'a:0:0:0:0:b:0:c'
myIp . toFullString ( ) ; // '000a:0000:0000:0000:0000:000b:0000:000c'
new IPv6 ( '::ffff:a9db:*' ) . toMixedString ( ) ; // '::ffff:169.219.*.*'
const myRange = getMatch ( '10.0.0.0-10.1.2.3' ) as IPRange ;
myRange . convertToMasks ( ) . map ( ( mask : IPMask ) => mask . convertToSubnet ( ) . toString ( ) ) ;
// [ '10.0.0.0/16', '10.1.0.0/23', '10.1.2.0/30' ]
const mask1 = getMatch ( '10.0.1.0/255.0.255.0' ) as IPMask ;
const mask2 = getMatch ( '10.0.0.0/128.0.0.0' ) as IPMask ;
mask1 . isSubsetOf ( mask2 ) ; // true
mask2 . getAmount ( ) ; // 2147483648
getMatch ( 'a::abbc:1234/ffff::ff80:000f' ) . toString ( ) ; // 'a::ab80:4/ffff::ff80:f' 참고 : 잘못된 입력에 matches 함수 및 모든 생성자 오류 오류
모든 기능에 대한 테스트 코드 또는 TypeScript 선언을 살펴볼 수 있습니다.
10.0.0.010.0.0.* 또는 심지어 10.*.0.*2001:0db8:85a3:0000:0000:8a2e:0370:73342001:db8:85a3::8a2e:0370:7334 또는 :: ::1 또는 a::2001::* 또는 2001::*:abc:*::ffff:127.0.0.1 (IPv4 부품에서는 와일드 카드가 허용되지 않음)10.0.1*.0 또는 2001::a*c10.0.0.0-10.1.2.32001::abc-2001::1:ffff10.0.0.0/162001::/12310.0.0.0/255.0.64.02001:abcd::/ffff:ff8:: IPMASK의 toString() 메소드는 동등하지만 예를 들어 /255.0.0.0 ~ /8 자동으로 단순화하지 않습니다. 2.0.0 이후 IPMASK에는 가능한 경우 동등한 ipsubnetwork를 반환하는 Method undefined convertToSubnet() 이 제공됩니다.
다음은 잘 알려진 유사한 NPM 패키지와 우리가 부족한 기능과 그 반대의 기능입니다. 모든 경우 에이 모듈에 적합하다고 생각되면 새로운 기능을 자유롭게 요청하십시오.
.ip6.arpa ) 및 스코어 (구역) 주소 지원