geo-ip-service
Version:
GeoIP middleware to provide ip based info leveraging maxmind Geo City databases
16 lines (14 loc) • 444 B
JavaScript
import { validate as isIp } from 'maxmind'
/**
* @param {any} req http request to determine client ip from
* @returns ipv4 or ipv6 address string 'i.e. "9.71.3.5"'
* looks for ip given the http request
*/
export default function fromReq (req) {
const ip =
(req.headers && req.headers['x-forwarded-for']) ||
req.ip ||
req._remoteAddress ||
(req.connection && req.connection.remoteAddress)
return isIp(ip) ? ip : '::1'
}