2017-02-23 6 views
0

링크가 마법 번호가있는 유효한 이미지인지 확인하려고합니다. 대부분의 이미지 링크가 잘 작동합니다. 그러나 트럼프의 사이트에서 올바른 마법 번호를 생성하지 않는 이미지 집합은 브라우저에서 제대로 작동하지만 이미지는 여기에 있습니다. 그들이 생산하는 매직 넘버는 3c21444f입니다. 그래서 분명히png 파일의 매직 번호가 잘못되었습니다.

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); 
    } 
    } 
}); 
+0

아마도 doctype 태그 인 것처럼 보이는 ' polarysekt

+0

html은 node.js 스크립트에서 해당 서버에 요청할 때 cloudflare가 이미지 대신 html 페이지를 반환하는 것처럼 보입니다. 스크립트에서 제대로 이미지를 얻으려면 적절한 헤더를 추가해야 할 수도 있습니다. 감사 – Yalamber

답변

0

를이 cloudflare 이미지 내 요청을 차단에 문제가 될 듯 : 아래

내 코드입니다, 어떤 도움을 주시면 감사하겠습니다. 그래서 나는 UserAgent Headers를 사용하여 이미지를 요청했다.

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 
};