Skip to content
Scan a network and create an audit log the camera models and JPEG snapshots
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Add more debug tests Feb 18, 2019
docs Add Presentation May 31, 2018
.gitignore Initial commit May 30, 2018
LICENSE Initial commit May 30, 2018 Update README Dec 9, 2018
camera_list.json Initial import May 30, 2018
logo.png Add logo file May 31, 2018
onvif-audit.js Improve Scan and Snapshot code. Fix port in -i mode Feb 18, 2019
package.json Bump ONVIF library - workaroud for cheap no-name chinese camera Dec 9, 2018


onvif-audit will scan a network looking for ONVIF cameras and create an audit log folder containing

  • Text File which reports the Camera Make and Model and Serial Number and the Camera Time (to check Time Sync Errors)
  • JPEG Snapshot of the camera view

The Audit can be controlled from the Command Line or via a Configuration File

A full list of commands can be obtained with the -h option node onvif-audit.js -h

Command Line

Command Line parameters are used to provide a single IP address or a range of IP addresses to scan, along with Username and Password. Example to scan a network for all cameras in the range to

node onvif-audit.js --ipaddress --username user --password 1234

Config File

A JSON formatted Configuration File is used to give the Audit tool a list of cameras to scan. An example is shown below which first scans the range of IPs from to and then scans a single address of

node onvif-audit.js --filename ./camera_list.json

cameralist.json contains this....

	"cameralist": [
			"ipaddress": "",
			"port": "80",
			"username": "service",
			"password": "password",
			"comment": "Bosch"
			"ipaddress": "",
			"port": "80",
			"username": "admin",
			"password": "password",
			"comment": "HikVision"


ONVIF Discovery vrs IP address range scan

ONVIF Audit supports Discovery of devices on the local network with the --scan option. This is great for scanning the local subnet but does not work over routed networks with different IP address ranges. This is why this tool also uses IP address ranges to scan the network.

Binary Executble Version

The npm package called 'pkg' is used to compile the Javascript into a standalone executable for Windows, Mac and Linux. Run ./node_modules/pkg/lib-es5/bin.js onvif-audit.js

Future Plans

a) Use the ONVIF Absolute PTZ Position Command to take a snapshot looking in different directions

You can’t perform that action at this time.