Node.js png文件的无效幻数

Node.js png文件的无效幻数,node.js,validation,image-processing,magic-numbers,Node.js,Validation,Image Processing,Magic Numbers,我正在尝试验证一个链接是否是一个带有魔术数字的有效图像。大多数图像链接工作正常。但以下是特朗普网站上的一组图像,它们并没有生成正确的魔法数字,尽管它们在浏览器上运行良好。他们产生的神奇数字是3c21444f 以下是我的代码,如有任何帮助,将不胜感激: var request = require('request'); var magic = { jpg: 'ffd8ffe0', jpg1: 'ffd8ffe1', png: '89504e47', gif: '47

我正在尝试验证一个链接是否是一个带有魔术数字的有效图像。大多数图像链接工作正常。但以下是特朗普网站上的一组图像,它们并没有生成正确的魔法数字,尽管它们在浏览器上运行良好。他们产生的神奇数字是3c21444f

以下是我的代码,如有任何帮助,将不胜感激:

var request = require('request');
var magic = {
    jpg: 'ffd8ffe0',
    jpg1: 'ffd8ffe1',
    png: '89504e47',
    gif: '47494638'
};
var options = {
  method: 'GET',
  url: 'https://assets.donaldjtrump.com/gallery/4749/screen_shot_2016-10-30_at_1.39.54_pm.png',
  encoding: null // keeps the body as buffer
};
request(options, function (error, response, body) {
  if(!error) {
     var magicNumberInBody = body.toString('hex', 0, 4);
     if (magicNumberInBody == magic.jpg || 
         magicNumberInBody == magic.jpg1 || 
         magicNumberInBody == magic.png ||
         magicNumberInBody == magic.gif) {
         console.log('Valid image');
     } else {
         console.log('Invalid Image', magicNumberInBody);
     }
  }
});

很明显,cloudflare阻止了我对图像的请求,这似乎是个问题。因此,我修复了使用UserAgent头请求这些图像的问题

var options = {
  method: 'GET',
  url: 'https://assets.donaldjtrump.com/gallery/4749/screen_shot_2016-10-30_at_1.39.54_pm.png',
  headers: {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
  },
  encoding: null // keeps the body as buffer
};

这是
,看起来可能是一个doctype标记。当我从node.js脚本向服务器发出请求时,cloudflare似乎返回的是html页面而不是图像。可能是我需要添加适当的标题,以便在脚本中正确地获取图像。谢谢