{"id":21483341,"url":"https://github.com/cybershadow/dhcptest","last_synced_at":"2026-01-26T18:54:48.870Z","repository":{"id":6297059,"uuid":"7531593","full_name":"CyberShadow/dhcptest","owner":"CyberShadow","description":"Cross-platform DHCP test client","archived":false,"fork":false,"pushed_at":"2025-11-16T20:25:15.000Z","size":272,"stargazers_count":401,"open_issues_count":4,"forks_count":58,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-11-30T00:10:02.924Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://blog.cy.md/2013/01/10/dhcp-test-client","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CyberShadow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-01-10T00:18:45.000Z","updated_at":"2025-11-26T15:36:47.000Z","dependencies_parsed_at":"2024-04-13T15:17:14.969Z","dependency_job_id":"49d688b7-8682-4634-b4f3-8e7f769895d8","html_url":"https://github.com/CyberShadow/dhcptest","commit_stats":{"total_commits":86,"total_committers":5,"mean_commits":17.2,"dds":0.4534883720930233,"last_synced_commit":"6f21d9583ed22e86285bd115876edf29ff3eef48"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/CyberShadow/dhcptest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberShadow%2Fdhcptest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberShadow%2Fdhcptest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberShadow%2Fdhcptest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberShadow%2Fdhcptest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CyberShadow","download_url":"https://codeload.github.com/CyberShadow/dhcptest/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyberShadow%2Fdhcptest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28785172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-11-23T12:46:32.275Z","updated_at":"2026-01-26T18:54:48.863Z","avatar_url":"https://github.com/CyberShadow.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"## dhcptest\n\nThis is a DHCP test tool. It can send DHCP discover packets, and listen for DHCP replies.\n\nThe tool is cross-platform, although you will need to compile it yourself for non-Windows platforms.\n\nThe tool is written in the [D Programming Language](https://dlang.org/).\n\n## Download\n\nYou can download a compiled Windows executable from my website, [here](https://files.cy.md/dhcptest/).\n\nThe latest development build for Windows can be downloaded from [GitHub Actions](https://github.com/CyberShadow/dhcptest/actions/workflows/test.yml?query=branch%3Amaster).\n\n## Building\n\nWith [DMD](https://dlang.org/download.html#dmd) (or another D compiler) installed, run:\n\n```\n$ dub build\n```\n\n## Usage\n\nBy default, dhcptest starts in interactive mode.\nIt will listen for DHCP replies, and allow sending DHCP discover packets using the \"d\" command.\nType `help` in interactive mode for more information.\n\nIf you do not receive any replies, try using the `--bind` option (or `--iface` on Linux) to bind to a specific local interface.\n\nThe program can also run in automatic mode if the `--query` switch is specified on the command line.\n\nAn example command line to automatically send a discover packet and explicitly request option 43,\nwait for a reply, then print just that option:\n\n    dhcptest --quiet --query --request 43 --print-only 43\n\nOptions can also be specified by name:\n\n    dhcptest --quiet --query \\\n         --request    \"Vendor Specific Information\" \\\n         --print-only \"Vendor Specific Information\"\n\nQuery mode will report the first reply recieved. To automatically send a discover packet and wait for \nall replies before the timeout, use `--wait`. For additional resilience against dropped packets on busy \nnetworks, consider using the `--tries` and `--timeout` switches:\n\n    dhcptest --quiet --query --wait --tries 5 --timeout 10\n\nYou can spoof the Vendor Class Identifier, or send additional DHCP options with the request packet,\nusing the `--option` switch:\n\n    dhcptest --query --option \"60=Initech Groupware\"\n\nOption 82 (Relay Agent Information) can be specified as follows:\n\n    dhcptest --query --option \"Relay Agent Information=agentCircuitID=\\\"foo\\\", agentRemoteID=\\\"bar\\\"\"\n\nRun `dhcptest --help` for further details and additional command-line parameters.\n\nFor a list and description of DHCP options, see [RFC 2132](https://datatracker.ietf.org/doc/html/rfc2132).\n\n## License\n\n`dhcptest` is available under the [Boost Software License 1.0](https://www.boost.org/LICENSE_1_0.txt).\n\n## Changelog\n\n### dhcptest v0.9 (2023-03-31)\n\n * Add option 121 (contributed by [Andrey Baranov](https://github.com/Dronec))\n * Add options 80, 100, 101, 108, 114, 116, 118, 249, and 252 (contributed by \n   [Rob Gill](https://github.com/rrobgill)\n * Fix encoding/decoding options 43 and 82\n\n### dhcptest v0.8 (2023-03-24)\n\n * Add `--iface` option for Linux\n * Add support for Linux raw sockets (`--raw`)\n * Add `--bind`, `--target`, and `--target-port` options\n * Add `--giaddr` option (contributed by [pcsegal](https://github.com/pcsegal))\n * Improve formatting and parsing of many options\n\n### dhcptest v0.7 (2017-08-03)\n\n * Refactor and improve option value parsing\n * Allow specifying all supported format types in both `--option` and\n   `--print-only` switches\n * Allow specifying DHCP option types by name as well as by number\n * Allow overriding the request type option. E.g., you can now send\n   'request' (instead of 'discover') packets using:\n\n        --option \"DHCP Message Type=request\"\n\n * Add formatting support for options 42 (Network Time Protocol\n   Servers Option) and 82 (Relay Agent Information)\n * Change how timeouts are handled:\n   * Always default to some finite timeout (not just when `--tries`\n     and `--wait` are absent), but still allow waiting indefinitely if\n     0 is specified.\n   * Increase default timeout from 10 to 60 seconds.\n\n### dhcptest v0.6 (2017-08-02)\n\n * Add `--secs` switch\n * Contributed by [Darren White](https://github.com/DarrenWhite99):\n     * Add `--wait` switch\n     * The `--print-only` switch now understands output formatting:\n       `--print-only \"N[hex]\"` will output the value as a zero padded hexadecimal string of bytes.\n       `--print-only \"N[ip]\"` will output the value as an IP address.\n * Don't print stack trace on errors\n\n### dhcptest v0.5 (2014-11-26)\n\n * The `--option` switch now understands hexadecimal or IPv4-dotted-quad formatting:  \n   `--option \"N[hex]=XX XX XX ...\"` or `--option \"N[IP]=XXX.XXX.XXX.XXX\"`\n\n### dhcptest v0.4 (2014-07-21)\n\n * Add switches: `--tries`, `--timeout`, `--option`\n\n### dhcptest v0.3 (2014-04-05)\n\n * Add switches: `--mac`, `--quiet`, `--query`, `--request`, `--print-only`\n * Print program messages to standard error\n\n### dhcptest v0.2 (2014-03-25)\n\n * License under Boost Software License 1.0\n * Add documentation\n * Add `--help` switch\n * Add `--bind` switch to specify the interface to bind on\n * Print time values in human-readable form\n * Heuristically detect and print ASCII strings in unknown options\n * Add option names from RFC 2132\n * Add `help` and `quit` commands\n * Add MAC address option to `discover` command\n\n### dhcptest v0.1 (2013-01-10)\n\n * Initial release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcybershadow%2Fdhcptest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcybershadow%2Fdhcptest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcybershadow%2Fdhcptest/lists"}