Skip to main content
Glama
index.js1.25 kB
/** * forwarded * Copyright(c) 2014-2017 Douglas Christopher Wilson * MIT Licensed */ 'use strict' /** * Get all addresses in the request used in the `X-Forwarded-For` header. */ function forwarded (req) { if (!req) { throw new TypeError('argument req is required') } const header = req.headers['x-forwarded-for'] const socketAddr = req.socket.remoteAddress if (!header || typeof header !== 'string') { return [socketAddr] } else if (header.indexOf(',') === -1) { const remote = header.trim() return (remote.length) ? [socketAddr, remote] : [socketAddr] } else { return parse(header, socketAddr) } } function parse (header, socketAddr) { const result = [socketAddr] let end = header.length let start = end let char let i for (i = end - 1; i >= 0; --i) { char = header[i] if (char === ' ') { (start === end) && (start = end = i) } else if (char === ',') { (start !== end) && result.push(header.slice(start, end)) start = end = i } else { start = i } } (start !== end) && result.push(header.substring(start, end)) return result } module.exports = forwarded module.exports.default = forwarded module.exports.forwarded = forwarded

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/krtw00/search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server