{"id":48217635,"url":"https://github.com/pusheandoando/mini_macchanger","last_synced_at":"2026-04-04T19:01:40.450Z","repository":{"id":348694199,"uuid":"1197396355","full_name":"pusheandoando/mini_macchanger","owner":"pusheandoando","description":"MAC and IP rotation utility for Linux","archived":false,"fork":false,"pushed_at":"2026-03-31T14:56:15.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T00:55:14.801Z","etag":null,"topics":["address","cpp","debian","ip","linux","mac","utilities","utility"],"latest_commit_sha":null,"homepage":"","language":"C++","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/pusheandoando.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":"2026-03-31T14:48:45.000Z","updated_at":"2026-03-31T15:01:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pusheandoando/mini_macchanger","commit_stats":null,"previous_names":["pusheandoando/mini_macchanger"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pusheandoando/mini_macchanger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusheandoando%2Fmini_macchanger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusheandoando%2Fmini_macchanger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusheandoando%2Fmini_macchanger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusheandoando%2Fmini_macchanger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pusheandoando","download_url":"https://codeload.github.com/pusheandoando/mini_macchanger/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusheandoando%2Fmini_macchanger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31409471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"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":["address","cpp","debian","ip","linux","mac","utilities","utility"],"created_at":"2026-04-04T19:01:39.954Z","updated_at":"2026-04-04T19:01:40.429Z","avatar_url":"https://github.com/pusheandoando.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mini_macchanger\nMAC and IP rotation utility for Linux. Focused, minimal, and straightforward. Written by **Christian (@pusheandoando)**\n\n\n\n\n\n## Proof of concept\nmini_macchanger rotates MAC addresses and renews DHCP leases on Linux network interfaces.\nIt handles NetworkManager, interface cycling, and DHCP negotiation automatically.\nOriginal MACs are saved on first use so you can always restore them.\n\n\u003e **NetworkManager note:** when NM is active and re-manages an interface it issues its own DHCP request using the system machine-id as client-id. The DHCP anonymization above applies to the direct `dhclient`/`dhcpcd` call that precedes NM re-management. For full DHCP anonymization under NM, configure `ipv4.dhcp-send-hostname=false` and `ipv4.dhcp-client-id` in the connection profile, or keep NM unmanaged for the interface.\n\n\n\n\n\n## Requirements\nDebian/Ubuntu:\n```bash\nsudo apt update\n```\n```bash\nsudo apt install -y build-essential cmake g++ iproute2 isc-dhcp-client\n```\n\nVerify kernel headers are present (usually satisfied by `build-essential`):\n```bash\nsudo apt install -y linux-headers-$(uname -r)\n```\n\n\n\n\n\n## Build (from code)\n```bash\ngit clone https://github.com/pusheandoando/mini_macchanger.git \u0026\u0026 cd mini_macchanger/\n```\n```bash\ncmake -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build\n```\n\n\n\n\n\n## Usage\n```\nmini_macchanger -n mac \u003cinterface\u003e    Rotate MAC on interface\nmini_macchanger -n mac '*'            Rotate MAC on ALL interfaces\nmini_macchanger -n ip  [interface]    Rotate MAC + renew DHCP (anonymized)\nmini_macchanger -n ip '*'             Rotate MAC + DHCP on ALL interfaces\nmini_macchanger --reset [interface]   Restore original MAC and renew IP\nmini_macchanger --reset '*'           Restore ALL original MACs\nmini_macchanger --purge               Erase history and DHCP lease files\nmini_macchanger --purge-all           Erase everything including originals\nmini_macchanger -l                    List all network interfaces\nmini_macchanger --credits             Show author information\nmini_macchanger --version             Show version\nmini_macchanger -h / --help           Show help\n```\n\n`-n` and `--new` are interchangeable. Quote the wildcard to prevent shell expansion.\nMAC and IP changes require root (`sudo`).\n\n\n\n\n\n## About cleanup\n`--purge` removes `history.log`, `used_ips.log`, and any DHCP lease files found under `/var/lib/dhcp` and `/var/lib/dhcpcd`. Files are zeroed before deletion. `originals.log` is preserved so that `--reset` still works.\n\n`--purge-all` additionally removes `originals.log` and the `~/.mini_macchanger` directory. Run `--reset` before `--purge-all` if you want to restore original MACs first.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpusheandoando%2Fmini_macchanger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpusheandoando%2Fmini_macchanger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpusheandoando%2Fmini_macchanger/lists"}