Skip to content

Commit

Permalink
add after param
Browse files Browse the repository at this point in the history
  • Loading branch information
zhi.zhou committed May 11, 2016
1 parent 1d7c5f2 commit cd13bbd
Showing 1 changed file with 29 additions and 19 deletions.
48 changes: 29 additions & 19 deletions cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ program
.option('--parser <parser>', 'parse with nmap rule')
.option('--encoding [encoding]', 'encode banner', /^(base64|hex)$/)
.option('--timeout <timeout>', 'timeout', parseInt)
.option('--after', 'grab after zmap has been finished')
.parse(process.argv)

let parse = program.parser ? (() => {
Expand All @@ -25,22 +26,31 @@ let parse = program.parser ? (() => {
(Object.keys(parsed).forEach(key => (data[key] = parsed[key])), data))
})() : data => data

process.stdin.on('data', buf =>
buf.toString().split('\n').filter(ip => ip).forEach(ip =>
grabber.grab(ip, program.port, {
tls: program.tls, payload: program.payload, timeout: program.timeout
})
.run()
.then(parse)
.then(data => {
data.ip = ip
data.banner = program.encoding ?
data.banner.toString(program.encoding) :
data.banner.toEscaped()
return data
})
.then(JSON.stringify)
.then(console.log)
.catch(err => console.log({ip: ip, error: err.message}))
)
)
const grab = ip => grabber.grab(ip, program.port, {
tls: program.tls,
payload: program.payload,
timeout: program.timeout
})
.run()
.then(parse)
.then(data => {
data.ip = ip
data.banner = program.encoding ?
data.banner.toString(program.encoding) :
data.banner.toEscaped()
return data
})
.then(JSON.stringify)
.then(console.log)
.catch(err => console.log({ip: ip, error: err.message}))

if (program.after) {
let list = ''
process.stdin
.on('data', buf => list += buf.toString())
.on('close', () => list.split('\n').filter(ip => ip).forEach(grab))

} else {
process.stdin
.on('data', buf => buf.toString().split('\n').filter(ip => ip).forEach(grab))
}

0 comments on commit cd13bbd

Please sign in to comment.