Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// Check the port, if the suggest url has defined it.
if (suggestedUrlObject.port) {
if (urlObject.port !== suggestedUrlObject.port) {
return false;
}
}
// Perfect match.
if (urlObject.hostname === suggestedUrlObject.hostname) {
return true;
}
// If IPs, make a strict comparison.
const urlIsIpAddress = ipRegex({exact: true}).test(urlObject.hostname);
const suggestUrlIsIpAddress = ipRegex({exact: true}).test(suggestedUrlObject.hostname);
if (urlIsIpAddress || suggestUrlIsIpAddress) {
return urlObject.hostname === suggestedUrlObject.hostname;
}
// Otherwise check if the suggested url hostname is a parent host of the url hostname.
return isParentHostname(suggestedUrlObject.hostname, urlObject.hostname);
}
ip.v4 = function (str) {
return ipRegex.v4({exact: true}).test(str);
};
export default function isIp (value: string, type?: IpTypes): boolean {
if (type === 'v4') {
return ipRegex.v4({ exact: true }).test(value);
} else if (type === 'v6') {
return ipRegex.v6({ exact: true }).test(value);
}
return ipRegex({ exact: true }).test(value);
}
isIp.v4 = x => ipRegex.v4({exact: true}).test(x);
isIp.v6 = x => ipRegex.v6({exact: true}).test(x);
isIp.v4 = string => ipRegex.v4({exact: true}).test(string);
isIp.v6 = string => ipRegex.v6({exact: true}).test(string);
ip.v6 = function (str) {
return ipRegex.v6({exact: true}).test(str);
};
isIp.v6 = string => ipRegex.v6({exact: true}).test(string);
isIp.version = string => isIp(string) ? (isIp.v4(string) ? 4 : 6) : undefined;
function hasV6IP(peers) {
for (let p of peers) {
if (ipRegex.v6({exact: true}).test(p.ip)) {
return true;
}
}
return false;
}
export default function isIp (value: string, type?: IpTypes): boolean {
if (type === 'v4') {
return ipRegex.v4({ exact: true }).test(value);
} else if (type === 'v6') {
return ipRegex.v6({ exact: true }).test(value);
}
return ipRegex({ exact: true }).test(value);
}
isIp.v6 = x => ipRegex.v6({exact: true}).test(x);