request library ends up passing whatever's in the HTTPS_PROXY env var to url.parse(), and thus: $ nodejs -e "require('url'); console.log(url.parse('208.80.154.22:8080'))" Url { protocol: '208.80.154.22:', slashes: null, auth: null, host: '8080', port: null, hostname: '8080', hash: null, search: null, query: null, pathname: null, path: null, href: '208.80.154.22:8080' } And then the decimal integer "8080", interpreted as a 32-bit integer IP, would be 0.0.31.144 ...