const http = require('http') const https = require('https') const os = require('os') const config = {   url: 'https://www.imalun.com/',   port: 7000,   ip: getIpv4(),   type: 'http',   http,   https, }
  let argv = process.argv
  if (argv.length < 3) {   console.log(     '\t\n\x1B[41m\x1B[1m%s\x1B[22m\x1B[49m  %s\t\n',     ' error ',     '请指定 proxy url \t\n demo :  node proxy www.imalun.com '   )   process.exit(1) } else {   let [, , ...par] = argv   config.url = par[0]   config.port = par[1] || config.port   if (par[0].substr(0, 5) === 'https') {     config.type = 'https'   } else if (par[0].substr(0, 4) === 'http') {     config.type = 'http'   } }
  http   .createServer(function (req, res) {     res.setHeader('Access-Control-Allow-Origin', '*')     res.setHeader('Access-Control-Allow-Headers', 'content-type')     res.setHeader('Access-Control-Allow-Methods', 'DELETE,PUT,POST,GET,OPTIONS')     if (req.method.toLowerCase() == 'options') res.end()     else       req.pipe(         config[config.type].request(config.url + req.url, (respo) =>           respo.pipe(res)         )       )   })   .listen(config.port, '0.0.0.0', function () {     console.log('\x1B[42m\x1B[1m%s\x1B[22m\x1B[49m', ' success \t\n')     console.log(       '\x1B[44m\x1B[1m%s\x1B[22m\x1B[49m %s\t\n',       ' prot ',       'http://' + config.ip + ':' + config.port     )     console.log(       '\x1B[44m\x1B[1m%s\x1B[22m\x1B[49m  %s\t\n',       ' proxy url ',       config.url     )   })
  function getIpv4() {   let net = os.networkInterfaces()   let ipv4   for (const key in net) {     net[key].forEach((element) => {       if (         element.address !== '127.0.0.1' &&         element.family.toLocaleLowerCase() === 'ipv4'       )         ipv4 = element.address     })   }   return ipv4 }
  |