PNG文件的魔术数字无效



我正在尝试验证链接是否是具有魔术号码的有效图像。大多数图像链接工作正常。但是,这里有特朗普网站上的一组图像,这些图像在浏览器上看起来不错,但它们似乎不正确。他们产生的魔术数字是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
};

相关内容

  • 没有找到相关文章

最新更新