有这样一个场景,要扫描内网的某个服务,只能通过前端来实现。已知服务器的端口号,不知道内网的IP网段。
首先ajax是不能用的,因为网页与目标服务器地址不一致,跨域了。
其次jsonp也不好用,因为现在浏览已经开始限制手动用脚本发jsonp获取获服务器信息了。
最后只能用 Image 来解决了。
Image 有一个 onload 方法,如果目录服务器文件存储则会触发,可以用来扫描设备:
var findArrs = [
'192.168.0.'
, '192.168.1.'
, '10.0.0.'
]
var onloadHandler = function() {
console.log(this)
console.log(arguments)
var src = this.src
console.log(src)
}
for (var i = 0; i < findArrs.length; i++) {
for (var j = 0; j < 255; j++) {
var img = new Image()
img.onerror = null
img.onload = onloadHandler
img.src = 'http://' + findArrs[i] + j + ':8064/img/onceair.png';
}
}
缺点:部分浏览器会限制同时下载图片的数量,因此扫描可能会很慢。
回复 (0)
微信扫码 立即评论