Gathering detailed insights and metrics for network-scanjs
Gathering detailed insights and metrics for network-scanjs
npm install network-scanjs
Typescript
Module System
Node Version
NPM Version
63.6
Supply Chain
94.9
Quality
74.8
Maintenance
100
Vulnerability
99.6
License
Total Downloads
1,042
Last Day
1
Last Week
10
Last Month
29
Last Year
187
Minified
Minified + Gzipped
Latest Version
1.0.5
Package Id
network-scanjs@1.0.5
Unpacked Size
12.44 kB
Size
6.11 kB
File Count
3
NPM Version
6.13.4
Node Version
12.16.1
Cumulative downloads
Total Downloads
Last day
0%
1
Compared to previous day
Last week
0%
10
Compared to previous week
Last month
314.3%
29
Compared to previous month
Last year
37.5%
187
Compared to previous year
4
A NodeJS library that can perform network diagnostic tests such as latency ping tests, IP address scanning, subnet calculating and SSL certifications and Vendor lookups
1npm install --save network-scanjs
1const {NetworkScan} = require('network-scanjs') 2const netScan = new NetworkScan()
1const config = { 2 repeat:4, //Specifies how many pings to send to the host, if null default is 1 3 size:56, //Size of bytes in each packet sent, if null default is 32 4 timeout:1 //Specifies the timeout of each ping in seconds, if null default is 1 5} 6 7netScan.poll('google.com',config).then((res)=>{ 8 console.log(res) 9}) 10 11async function ping(){ 12 const poll = await netScan.poll('google.com',config) 13 console.log(poll) 14}
Expected output
1{ 2 host: 'google.com', 3 ip_address: '172.217.167.78', 4 status: 'online', 5 res_avg: '35.000ms', 6 times: [ 36, 35, 35, 36 ], 7 packetLoss: '0.000' 8}
1netScan.ipScan('192.168.1.0-24').then((hosts)=>{ 2 console.log(hosts) 3}) 4 5async function runScan(){ 6 const scan = await netScan.ipScan('192.168.1.0-24') 7 console.log(scan) 8}
This will return an array of all the online hosts between the range (192.168.1.0 to 192.168.1.24)
1netScan.getSubnet('192.168.1.0/24').then((net)=>{ 2 console.log(net) 3}) 4 5async function getSubnet(){ 6 const subnet = await netScan.getSubnet('192.168.1.0/24') 7 console.log(subnet) 8}
Expected output
1{ 2 subnet: '192.168.1.0/24', 3 subnet_bits: 24, 4 subnet_mask: '255.255.255.0', 5 network_address: '192.168.1.0', 6 broadcast_address: '192.168.1.255', 7 first_host: '192.168.1.1', 8 last_host: '192.168.1.254', 9 available_hosts: 254, 10 host_range: '192.168.1.1-254' 11}
Use different functions together
1netScan.getSubnet('192.168.1.0/24').then((net)=>{ 2 netScan.ipScan(net.host_range).then((hosts)=>{ 3 console.log(hosts) 4 }) 5}) 6 7async function ipScanSubnet(){ 8 const subnet = await netScan.getSubnet('192.168.1.0/24') 9 netScan.ipScan(subnet.host_range).then((hosts)=>{ 10 console.log(hosts) 11 }) 12}
Get the vendor of a custom MAC address
1netScan.macLookup('FC-A1-3E-2A-1C-33').then((vendor)=>{ 2 console.log(vendor) 3}) 4 5async function macLook(){ 6 const vendor = await netScan.macLookup('FC-A1-3E-2A-1C-33') 7 console.log(vendor) 8}
Expected output
1Samsung Electronics Co.,Ltd
Get a websites ssl certificate
1netScan.getSsl('https://jsonplaceholder.typicode.com/users').then((cert)=>{ 2 console.log(cert) 3}) 4 5async function getCert(){ 6 let ssl = await netScan.getSsl('https://jsonplaceholder.typicode.com/users') 7 console.log(ssl) 8}
Expected output
1{ 2 subject: [Object: null prototype] { 3 OU: [ 'Domain Control Validated', 'PositiveSSL Wildcard' ], 4 CN: '*.nodejs.org' 5 }, 6 issuer: [Object: null prototype] { 7 C: 'GB', 8 ST: 'Greater Manchester', 9 L: 'Salford', 10 O: 'Sectigo Limited', 11 CN: 'Sectigo RSA Domain Validation Secure Server CA' 12 }, 13 subjectaltname: 'DNS:*.nodejs.org, DNS:nodejs.org', 14 infoAccess: [Object: null prototype] { 15 'CA Issuers - URI': [ 16 'http://crt.sectigo.com/SectigoRSADomainValidationSecureServerCA.crt' 17 ], 18 'OCSP - URI': [ 'http://ocsp.sectigo.com' ] 19 }, 20 modulus: 'B56CE45CB740B09A13F64AC543B712FF9EE8E4C284B542A1708A27E82A8D151CA178153E12E6DDA15BF70FFD96CB8A88618641BDFCCA03527E665B70D779C8A349A6F88FD4EF6557180BD4C98192872BCFE3AF56E863C09DDD8BC1EC58DF9D94F914F0369102B2870BECFA1348A0838C9C49BD1C20124B442477572347047506B1FCD658A80D0C44BCC16BC5C5496CFE6E4A8428EF654CD3D8972BF6E5BFAD59C93006830B5EB1056BBB38B53D1464FA6E02BFDF2FF66CD949486F0775EC43034EC2602AEFBF1703AD221DAA2A88353C3B6A688EFE8387811F645CEED7B3FE46E1F8B9F59FAD028F349B9BC14211D5830994D055EEA3D547911E07A0ADDEB8A82B9188E58720D95CD478EEC9AF1F17BE8141BE80906F1A339445A7EB5B285F68039B0F294598A7D1C0005FC22B5271B0752F58CCDEF8C8FD856FB7AE21C80B8A2CE983AE94046E53EDE4CB89F42502D31B5360771C01C80155918637490550E3F555E2EE75CC8C636DDE3633CFEDD62E91BF0F7688273694EEEBA20C2FC9F14A2A435517BC1D7373922463409AB603295CEB0BB53787A334C9CA3CA8B30005C5A62FC0715083462E00719A8FA3ED0A9828C3871360A73F8B04A4FC1E71302844E9BB9940B77E745C9D91F226D71AFCAD4B113AAF68D92B24DDB4A2136B55A1CD1ADF39605B63CB639038ED0F4C987689866743A68769CC55847E4A06D6E2E3F1', 21 bits: 4096, 22 exponent: '0x10001', 23 pubkey: <Buffer 30 82 02 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 02 0f 00 30 82 02 0a 02 82 02 01 00 b5 6c e4 5c b7 40 b0 9a 13 f6 4a c5 43 b7 12 ff 9e ... 500 more bytes>, 24 valid_from: 'Oct 21 00:00:00 2019 GMT', 25 valid_to: 'Jan 18 23:59:59 2022 GMT', 26 fingerprint: '04:03:3E:4A:27:E0:F8:C4:5B:F0:67:AC:59:E5:44:3A:83:42:7A:F5', 27 fingerprint256: 'D6:5F:FB:A8:A5:73:B9:A8:B9:6C:10:79:21:51:08:A4:7A:13:F5:E1:24:15:39:4F:C6:D0:6F:16:44:CC:1C:42', 28 ext_key_usage: [ '1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2' ], 29 serialNumber: 'C2A4BC8EC1EF093589F3863B9EB4581F', 30 raw: <Buffer 30 82 07 71 30 82 06 59 a0 03 02 01 02 02 11 00 c2 a4 bc 8e c1 ef 09 35 89 f3 86 3b 9e b4 58 1f 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 81 8f ... 1859 more bytes>, 31 pemEncoded: '-----BEGIN CERTIFICATE-----\n' + 32 'MIIHcTCCBlmgAwIBAgIRAMKkvI7B7wk1ifOGO560WB8wDQYJKoZIhvcNAQELBQAw\n' + 33 'gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\n' + 34 'BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE\n' + 35 'AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD\n' + 36 'QTAeFw0xOTEwMjEwMDAwMDBaFw0yMjAxMTgyMzU5NTlaMFkxITAfBgNVBAsTGERv\n' + 37 'bWFpbiBDb250cm9sIFZhbGlkYXRlZDEdMBsGA1UECxMUUG9zaXRpdmVTU0wgV2ls\n' + 38 'ZGNhcmQxFTATBgNVBAMMDCoubm9kZWpzLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQAD\n' + 39 'ggIPADCCAgoCggIBALVs5Fy3QLCaE/ZKxUO3Ev+e6OTChLVCoXCKJ+gqjRUcoXgV\n' + 40 'PhLm3aFb9w/9lsuKiGGGQb38ygNSfmZbcNd5yKNJpviP1O9lVxgL1MmBkocrz+Ov\n' + 41 'VuhjwJ3di8HsWN+dlPkU8DaRArKHC+z6E0igg4ycSb0cIBJLRCR3VyNHBHUGsfzW\n' + 42 'WKgNDES8wWvFxUls/m5KhCjvZUzT2Jcr9uW/rVnJMAaDC16xBWu7OLU9FGT6bgK/\n' + 43 '3y/2bNlJSG8HdexDA07CYCrvvxcDrSIdqiqINTw7amiO/oOHgR9kXO7Xs/5G4fi5\n' + 44 '9Z+tAo80m5vBQhHVgwmU0FXuo9VHkR4HoK3euKgrkYjlhyDZXNR47smvHxe+gUG+\n' + 45 'gJBvGjOURafrWyhfaAObDylFmKfRwABfwitScbB1L1jM3vjI/YVvt64hyAuKLOmD\n' + 46 'rpQEblPt5MuJ9CUC0xtTYHccAcgBVZGGN0kFUOP1VeLudcyMY23eNjPP7dYukb8P\n' + 47 'dognNpTu66IML8nxSipDVRe8HXNzkiRjQJq2Aylc6wu1N4ejNMnKPKizAAXFpi/A\n' + 48 'cVCDRi4AcZqPo+0KmCjDhxNgpz+LBKT8HnEwKETpu5lAt350XJ2R8ibXGvytSxE6\n' + 49 'r2jZKyTdtKITa1WhzRrfOWBbY8tjkDjtD0yYdomGZ0Omh2nMVYR+SgbW4uPxAgMB\n' + 50 'AAGjggL7MIIC9zAfBgNVHSMEGDAWgBSNjF7EVK2K4Xfpm/mbBeG4AY1h4TAdBgNV\n' + 51 'HQ4EFgQUcMdzKdAgAd58S29IuEIabcmg6jcwDgYDVR0PAQH/BAQDAgWgMAwGA1Ud\n' + 52 'EwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEkGA1UdIARC\n' + 53 'MEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdv\n' + 54 'LmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEFBQcBAQR4MHYwTwYIKwYBBQUHMAKG\n' + 55 'Q2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JTQURvbWFpblZhbGlkYXRp\n' + 56 'b25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNl\n' + 57 'Y3RpZ28uY29tMCMGA1UdEQQcMBqCDCoubm9kZWpzLm9yZ4IKbm9kZWpzLm9yZzCC\n' + 58 'AX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHYARqVV63X6kSAwtaKJafTzfREsQXS+\n' + 59 '/Um4havy/HD+bUcAAAFt7HZX/QAABAMARzBFAiEA/JfRdgojVXOzY1DqmquU+JZH\n' + 60 'v3Ba4BQ9/pKOkQglexQCIC00R9cVU8gSAcQR9YiYH4vkUDvlV99JwC6lvsBZhlBV\n' + 61 'AHcAVYHUwhaQNgFK6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAFt7HZXvQAABAMA\n' + 62 'SDBGAiEA2sos0RKERlwYFqVzk1DHz0W53s6BMfbfL8QTWRxMap4CIQCbdZAxS6iQ\n' + 63 'oU2fkUODIcp6xh4vqAy09PZUHcb4sgb96AB2ACJFRQdZVSRWlj+hL/H3bYbgIyZj\n' + 64 'rcBLf13Gg1xu4g8CAAABbex2WPoAAAQDAEcwRQIhAKbVltxU+9mSqLsWmX/BGxQg\n' + 65 '4iPTPTkXx/EXIXvkpsBBAiBT8gPtJJbBa3fvH3U7VK7IkdbIqjIHU98ZzJ40s7nx\n' + 66 '4DANBgkqhkiG9w0BAQsFAAOCAQEAoE9eN9FNI5aBig17+dTPHawCV/rPiFcEAVbd\n' + 67 'TeNnUj+fZVurs2N4oaslxa05mfukp4kUdJoGo7lokoTgwThqwJi65cqdTzKv2s5v\n' + 68 'DmKP8L7RLlsLcLeiPlS5ubrhEe7tqk69vlg1mHcHcMKZZQG5n5T5f/crPesXjXl2\n' + 69 'IqvfwJqF0EYYeE32RGX5RV7TfSFiaGx1Up5b189qY8+OlJSQOj7YKzQee1hVcv3S\n' + 70 '7rTROCbK4x0DAdh5xRVWNFKae/Kok5dDNqHV39eT6YqO4GJwWscW70X/Vyp026P7\n' + 71 'I7IcTYEe5ZxyFk8t5aowJIVo5KcCHpfXOlkjXluQYfNSIkZNyA==\n' + 72 '-----END CERTIFICATE-----' 73}
NodeJS Network Scanner is an open source project and the repository can be cloned from github
No vulnerabilities found.
No security vulnerabilities found.