UNPKG

lightsword

Version:

LightSword Secure SOCKS5 Proxy / iOS VPN Server

41 lines (36 loc) 1.21 kB
//----------------------------------- // Copyright(c) 2015 Neko //----------------------------------- 'use strict' import * as os from 'os'; import * as util from 'util'; const illegalAddresses = ['127.0.0.1', '::1', '0.0.0.0', '::0', os.hostname()]; const illegalPrefix = ['192.168.', '10.', '172.168.', 'fe80:']; export function isIllegalAddress(addr: string): boolean { return illegalAddresses.any(a => a === addr) || illegalPrefix.any(a => addr.startsWith(a)); } export function ntoa(data: ArrayLike<number>): string { let ipVer = data.length; switch (ipVer) { case 4: return util.format('%d.%d.%d.%d', data[0], data[1], data[2], data[3]); case 6: return util.format('%s%s:%s%s:%s%s:%s%s:%s%s:%s%s:%s%s:%s%s', data[0].toString(16), data[1].toString(16), data[2].toString(16), data[3].toString(16), data[4].toString(16), data[5].toString(16), data[6].toString(16), data[7].toString(16), data[8].toString(16), data[9].toString(16), data[10].toString(16), data[11].toString(16), data[12].toString(16), data[13].toString(16), data[14].toString(16), data[15].toString(16)); } }