48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var fs = require('fs');
 | 
						|
var path = require('path');
 | 
						|
var basedir = path.join(__dirname, 'emails');
 | 
						|
var files = fs.readdirSync(basedir)
 | 
						|
 | 
						|
var emails = {};
 | 
						|
files.forEach(function (fname) {
 | 
						|
  var fpath = path.join(basedir, fname);
 | 
						|
  var data;
 | 
						|
  var email;
 | 
						|
  var iat;
 | 
						|
  var mdata;
 | 
						|
  if (!/\.data$/.test(fname)) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
  data = JSON.parse(fs.readFileSync(fpath));
 | 
						|
  email = fname.replace('\.' + data.domains.join('') + '\.data', '');
 | 
						|
  mdata = JSON.parse(fs.readFileSync(path.join(basedir, email)));
 | 
						|
  if (data.iat) {
 | 
						|
    iat = new Date(data.iat * 1000).toISOString();
 | 
						|
  }
 | 
						|
  if (!emails[email]) {
 | 
						|
    emails[email] = {
 | 
						|
      domains: []
 | 
						|
    , ports: []
 | 
						|
    , nodes: [ { createdAt: iat, scheme: 'mailto', type: 'email', name: email } ]
 | 
						|
    , jtis: []
 | 
						|
    };
 | 
						|
  }
 | 
						|
  emails[email].jtis.push(data.id);
 | 
						|
  data.domains.forEach(function (d) {
 | 
						|
    emails[email].domains.push({ createdAt: iat, name: d, wildcard: true, hostname: mdata.hostname
 | 
						|
      , os: mdata.os_type, arch: mdata.os_arch });
 | 
						|
  });
 | 
						|
  data.ports.forEach(function (p) {
 | 
						|
    emails[email].ports.push({ createdAt: iat, number: p, hostname: mdata.hostname
 | 
						|
      , os: mdata.os_type, arch: mdata.os_arch });
 | 
						|
  });
 | 
						|
});
 | 
						|
console.log('');
 | 
						|
console.log('[\n' + Object.keys(emails).map(function (k) { return JSON.stringify(emails[k]); }).join(',\n') + '\n]');
 | 
						|
console.log('');
 | 
						|
console.log('');
 | 
						|
console.log(Object.keys(emails).join(', '));
 | 
						|
console.log('');
 |