@catho/request-public-ip
Version:
Node.js module for retrieving a request's public IP address
17 lines (14 loc) • 402 B
JavaScript
import privateIp from 'private-ip';
import ipRegex from 'ip-regex';
import ipaddr from 'ipaddr.js';
function isPublicIp(ip) {
return isIp(ip) && !privateIp(ip);
}
function isIp(str) {
if (!ipaddr.isValid(str)) {
return false;
}
const kind = ipaddr.parse(str).kind();
return kind === "ipv4" ? ipRegex.v4().test(str) : ipRegex.v6().test(str);
}
export { isIp, isPublicIp };