0.1.5 • Published 7 months ago

@mojolabs-id/prober v0.1.5

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
7 months ago

Coverage Status

Prober

Prober simple TypeScript library for network scanning work with Fqdn,Url, IPv4, IPv6 and ASN

Prober can be used with both TypeScript and JavaScript.

Prober's source can be found on GitHub

Installation

Node.js

If you want to use Prober from within a Node.js environment, you can install it via npm.

npm install @mojolabs-id/prober

Linux

If you want to use Prober from linux command line without install Node.js , you can install it with command

curl -sk https://api.github.com/repos/mojolabs-id/prober/releases | grep browser_download_url | \
cut -d\" -f4 | egrep 'prober' -m1 |  wget -i - -O /tmp/prober && chmod +x /tmp/prober && sudo mv /tmp/prober /usr/local/bin/prober

Usage

How you get access to the above, depends on the module loading mechanism being used. The examples below will show how to access Prober using ES module mechanism with TypeScript in Node.js, using CommonJs module mechanism with JavaScript in Node.Js.

ES module with TypeScript

Import what you need from @mojolabs-id/prober and use away

import {  Prober ,Options } from '@mojolabs-id/prober';

CommonJs with JavaScript

All external modules in @mojolabs-id/prober are exported. So you can require ('@mojolabs-id/prober') and then access the module you want to use in your application, or access the module in one go, while requiring; as shown below:

const {Prober ,Options } = require('@mojolabs-id/prober');

You can then make use of the imported module in your code

(async () => {
	const prober = new Prober();
	const options: Options = {
		path: '/',
		timeout: 5000,
		 host: 'www.sonymusic.com',
	//	host: '197.134.250.157',
	//	port: '22,80,3000-3010,5555'
		port: '443'

	};
	prober.on('done', async (ctx, result) => {
		console.log(result)

	});
	prober.on('error', (err,target) => {
		//console.error(err)
	});
	prober.on('finish', (arg) => {
		console.log('finish !',arg)
	});
	await prober.parse(options);

})();

Command line

Usage: prober options

Example:

 echo AS55688 | prober --stdin -p 80,443,3000

Documentation

Examples

Overview

mojolabs@ubuntu:~# prober -h 127.0.0.1  --status --title -hh Content-Type --techs --nmap -e HTTP --port=21-23,80,3000,5432,3306,6379,4000
127.0.0.1:4000 | ERROR | Unable connect 127.0.0.1:4000 connect ECONNREFUSED 127.0.0.1:4000
127.0.0.1:6379 | ERROR | Unable connect 127.0.0.1:6379 connect ECONNREFUSED 127.0.0.1:6379
127.0.0.1:3000 | ERROR | Unable connect 127.0.0.1:3000 connect ECONNREFUSED 127.0.0.1:3000
127.0.0.1:23 | ERROR | Unable connect 127.0.0.1:23 connect ECONNREFUSED 127.0.0.1:23
127.0.0.1:22 | ERROR | Unable connect 127.0.0.1:22 connect ECONNREFUSED 127.0.0.1:22
127.0.0.1:21 | ERROR | Unable connect 127.0.0.1:21 connect ECONNREFUSED 127.0.0.1:21
127.0.0.1:3306 | SUCCESS | m
127.0.0.1:5432 | SUCCESS
127.0.0.1:80 | SUCCESS | 200 | Default Site | Bootstrap | text/html | HTTP/1.1 200 OK | {"service":"http","p":"OpenResty web app server","cpe":"a:openresty:ngx_openresty"}
127.0.0.1:80 | MATCH | 200 | Default Site | Bootstrap | text/html | HTTP/1.1 200 OK | {"service":"http","p":"OpenResty web app server","cpe":"a:openresty:ngx_openresty"} | HTTP

License

Prober is under the Apache 2.0 License

Contributing

To discuss a new feature or ask a question, open an issue. Find the issue tracker here

Found a bug, and you want to provide a fix for it? Then feel free to submit a pull request. It will be appreciated if the changes made are backed with tests.

Change log

View latest releases here

v0.1.5
  • fix log output
v0.1.4
  • fix SSL routines:ssl3_get_record:wrong version number
v0.1.3
  • refactor
v0.1.2
  • fix option
v0.1.1
  • fix asn validation
v0.1.0
  • Initial release