/
eti_api.gs
51 lines (48 loc) · 1.7 KB
/
eti_api.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function ETI_Setting(){
return {
method: 'GET',
key: '•••••••••',
uri: 'https://api.emergingthreats.net',
command: '',
parameters: ''
};
}
function Whois(){
const req = {...ETI_Setting(), domain: 'disney.com', command: '/v1/domains/disney.com/whois'};
const response = ETI_PrivateRequest(req);
if (!response.status) {Logger.log(`Error: ${response.message}`); return false;}
const {data: {response: {registrant, registrar}}} = response;
console.log(`domain = ` + response.data['response']['domain'] );
console.log(`country = ${registrar.country}`);
console.log(`website = ${registrar.website}`);
console.log(`name = ${registrar.name}`);
console.log(`update = ${registrant.updated}`);
console.log(`email = ${registrant.email}`);
console.log(`name = ${registrant.name}`);
console.log(`name = ${registrant.created}`);
console.log(`expires = ${registrant.expires}`);
}
function Repcategories(){
const req = {...ETI_Setting(), command: '/v1/repcategories'};
const response = ETI_PrivateRequest(req);
if (!response.status) {Logger.log(`Error: ${response.message}`); return false;}
response.data.response.forEach(({name, description}) => Logger.log(`${name} = ${description}`));
}
function ETI_PrivateRequest(req){
const params = {
method: req.method,
muteHttpExceptions: true,
redirect: 'follow',
Accept: 'application/json',
headers: {
Authorization: req.key,
},
};
const url = `${req.uri}${req.command}${req.parameters}`;
try {
const data = JSON.parse(UrlFetchApp.fetch(url, params));
return {data, status: true, message: ''};
} catch (error) {
return {data: null, status: false, message: error};
}
}