{"id":16521763,"url":"https://github.com/davesteele/netbwtools","last_synced_at":"2026-05-28T23:31:05.901Z","repository":{"id":50150554,"uuid":"41798993","full_name":"davesteele/netbwtools","owner":"davesteele","description":"Simple tools for monitoring network traffic","archived":false,"fork":false,"pushed_at":"2015-09-23T22:22:35.000Z","size":320,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-11T02:28:56.841Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davesteele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-02T12:11:08.000Z","updated_at":"2022-07-27T19:46:28.000Z","dependencies_parsed_at":"2022-08-26T05:51:16.915Z","dependency_job_id":null,"html_url":"https://github.com/davesteele/netbwtools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davesteele/netbwtools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davesteele%2Fnetbwtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davesteele%2Fnetbwtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davesteele%2Fnetbwtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davesteele%2Fnetbwtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davesteele","download_url":"https://codeload.github.com/davesteele/netbwtools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davesteele%2Fnetbwtools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33630999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T16:57:50.895Z","updated_at":"2026-05-28T23:31:05.882Z","avatar_url":"https://github.com/davesteele.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# netbwtools\n\nThis repository contains a few simple scripts for download performance testing,\ncreating comma-separated variable (CSV) files as output. These can be converted\nto charts in a spreadsheet application.\n\nThe scripts:\n * _netbwcsv_ - Output network port traffic as CSV.\n * _dltest_ - Run a download test, creating a CSV file.\n * _addbwcsv_ - Combine multiple 'netbwcsv' files into a single spreadsheet.\n\n## netbwcsv\n\nMonitor data through network port(s), output as a csv file.\n\n```Batchfile\n$ netbwcsv -h\nusage: netbwcsv [-h] [-b] [-d SEC] [-l] [-t TITLE]\n                ipaddr[:device[:community[:direction]]]\n                [ipaddr[:device[:community[:direction]]] ...]\n\nMonitor traffic at network endpoints\n\npositional arguments:\n  ipaddr[:device[:community[:direction]]]\n                        Monitoring point. Device defaults to 'eth0'. The SNMP\n                        community defaults to 'public'. Direction is 'in' or\n                        'out' (default 'in')\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -b, --bps             output the rate in bits/second (default is bytes/sec)\n  -d SEC, --delay SEC   delay between samples (default is 5 seconds)\n  -l, --list-devices    just list the devices on the node, and exit\n  -t TITLE, --title TITLE\n                        title for the csv data column\n\nQuery the device using SNMP, and output the results in CSV format. The device\nmay be specified by name or by SNMP index (the last digit in the monitoring\nOID).\n```\n\n```\n$ netbwcsv -l localhost\nlocalhost : ['lo', 'Controller', 'wlan1']\n```\n\n```\n$ netbwcsv -b -d 1  localhost:wlan1\ntime, localhost:wlan1:in\n2015-09-18 11:40:01, 1336\n2015-09-18 11:40:02, 10504\n2015-09-18 11:40:03, 22048\n2015-09-18 11:40:04, 2280\n2015-09-18 11:40:05, 336\n^C$\n```\n\n## dltest\n\nRun a download test, creating a CSV file.\n\n```\n$ dltest\ndltest\n\nUsage: ./dltest \u003ctestname\u003e \u003csnmp_port\u003e \u003cdelay\u003e \u003cnet_cmd\u003e\n\nThis creates a CSV file named \u003ctestname\u003e.csv, with columns for time (separated\nby \u003cdelay\u003e seconds) and bandwidth on \u003csnmp_port\u003e, in bits/second.\n\nThe format for \u003csnmp_port\u003e is as defined by 'netbwcsv'. \u003cnet_cmd\u003e is a data\nconsuming command - for instance 'scp user@host:path .'.\n```\n\n```\n$ dltest googletest localhost:wlan1 1 'wget http://google.com'\n\u003cwget output...\u003e\n\n$ cat googletest.csv\ntime, \"googletest\"\n2015-09-18 11:44:57, 1848\n2015-09-18 11:44:58, 0\n2015-09-18 11:44:59, 1472\n2015-09-18 11:45:00, 4008\n2015-09-18 11:45:01, 5296\n2015-09-18 11:45:02, 179120\n2015-09-18 11:45:03, 0\n2015-09-18 11:45:04, 3024\n2015-09-18 11:45:05, 0\n2015-09-18 11:45:06, 824\n$\n```\n\n## addbwcsv\n\nMerge multiple 'netbwcsv' output files to a single spreadsheet with a single time base.\n\n\n```\n$ addbwcsv -h\nusage: addbwcsv [-h] file.csv [file.csv ...]\n\nCombine netbwcsv CSV files\n\npositional arguments:\n  file.csv    A netbwcsv CSV file to be incorporated.\n\noptional arguments:\n  -h, --help  show this help message and exit\n\nCombines CSV files from netbwcsv output into a single spreadsheet, with a\ncommon time base and separate columns for each data series. Output is to\nstdout.\n```\n\n```\n$ dltest google1 localhost:wlan1 1 'wget http://google.com'\n...\n$ dltest google2 localhost:wlan1 1 'wget http://google.com'\n...\n$ addbwcsv google1.csv google2.csv\ntime,google1,google2\n2015-09-18 11:50:15, 0,\n2015-09-18 11:50:16, 744,\n2015-09-18 11:50:17, 5408,\n2015-09-18 11:50:18, 0,\n2015-09-18 11:50:19, 0,\n2015-09-18 11:50:20, 181616,\n2015-09-18 11:50:21, 1336,\n2015-09-18 11:50:22, 1480,\n2015-09-18 11:50:23, 0,\n2015-09-18 11:50:24, 13896,\n2015-09-18 11:50:30,, 3408\n2015-09-18 11:50:31,, 2904\n2015-09-18 11:50:32,, 0\n2015-09-18 11:50:33,, 1560\n2015-09-18 11:50:34,, 0\n2015-09-18 11:50:35,, 179144\n2015-09-18 11:50:36,, 5344\n2015-09-18 11:50:37,, 744\n2015-09-18 11:50:38,, 0\n2015-09-18 11:50:39,, 0\n```\n\nWhich parses to:\n\ntime | google1 | google2\n---- | ------- | -------\n2015-09-18 11:50:15 |  0 | |\n2015-09-18 11:50:16 |  744 | |\n2015-09-18 11:50:17 |  5408 | |\n2015-09-18 11:50:18 |  0 | |\n2015-09-18 11:50:19 |  0 | |\n2015-09-18 11:50:20 |  181616 | |\n2015-09-18 11:50:21 |  1336 | |\n2015-09-18 11:50:22 |  1480 | |\n2015-09-18 11:50:23 |  0 | |\n2015-09-18 11:50:24 |  13896 | |\n2015-09-18 11:50:30 |  |  3408\n2015-09-18 11:50:31 |  |  2904\n2015-09-18 11:50:32 |  |  0\n2015-09-18 11:50:33 |  |  1560\n2015-09-18 11:50:34 |  |  0\n2015-09-18 11:50:35 |  |  179144\n2015-09-18 11:50:36 |  |  5344\n2015-09-18 11:50:37 |  |  744\n2015-09-18 11:50:38 |  |  0\n2015-09-18 11:50:39 |  |  0\n\nThis can be charted in a spreadsheet as an X-Y plot, with the following\nresults:\n\n![image](https://raw.githubusercontent.com/davesteele/netbwtools/master/images/chart.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavesteele%2Fnetbwtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavesteele%2Fnetbwtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavesteele%2Fnetbwtools/lists"}