ip matching
Release 2.1.2

โมดูลแบบสแตนด์อโลนพร้อมคุณสมบัติที่มีประโยชน์บางอย่างเกี่ยวกับ IPS:
npm install --save ip-matching
# or
yarn add ip-matchingมาพร้อมกับการประกาศ TypeScript ในตัวของตัวเองพร้อมเอกสารประกอบ
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:: วิธี toString() ของ IPMASK ไม่ได้ทำให้ง่ายขึ้น EG /255.0.0.0 ถึง /8 โดยอัตโนมัติแม้ว่าจะเทียบเท่า ตั้งแต่ 2.0.0, ipmask มาพร้อมกับวิธีการ convertToSubnet() ซึ่งส่งคืน iPsubnetwork ที่เทียบเท่าถ้าเป็นไปได้มิฉะนั้น undefined
นี่คือแพ็คเกจ NPM ที่คล้ายกันที่รู้จักกันดีและคุณสมบัติที่พวกเขามีที่เราขาดและในทางกลับกัน ในทุกกรณีอย่าลังเลที่จะขอคุณสมบัติใหม่หากคุณคิดว่ามันเหมาะสมกับโมดูลนี้
.ip6.arpa ) และที่อยู่ที่กำหนดขอบเขต (ZONED)