{"id":45586493,"url":"https://github.com/dougy147/mcbash","last_synced_at":"2026-02-23T11:54:19.196Z","repository":{"id":50692092,"uuid":"500935373","full_name":"dougy147/mcbash","owner":"dougy147","description":"bash script to find valid MAC addresses on some IPTV platform","archived":false,"fork":false,"pushed_at":"2024-03-05T22:20:32.000Z","size":2960,"stargazers_count":64,"open_issues_count":2,"forks_count":29,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-03-05T23:33:13.721Z","etag":null,"topics":["check","iptv","mac","portal","scan","stalker"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dougy147.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"dougy147"}},"created_at":"2022-06-07T17:14:05.000Z","updated_at":"2024-03-05T21:36:35.000Z","dependencies_parsed_at":"2023-09-29T19:33:22.797Z","dependency_job_id":null,"html_url":"https://github.com/dougy147/mcbash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dougy147/mcbash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougy147%2Fmcbash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougy147%2Fmcbash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougy147%2Fmcbash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougy147%2Fmcbash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dougy147","download_url":"https://codeload.github.com/dougy147/mcbash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougy147%2Fmcbash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29741927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"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":["check","iptv","mac","portal","scan","stalker"],"created_at":"2026-02-23T11:54:16.268Z","updated_at":"2026-02-23T11:54:19.179Z","avatar_url":"https://github.com/dougy147.png","language":"Shell","funding_links":["https://ko-fi.com/dougy147"],"categories":[],"sub_categories":[],"readme":"# mcbash\n\n`mcbash` is a fast, modular and user-friendly script to find valid MAC addresses on some IPTV platforms.\n\nJust feed it with a server URL or IP, and let it check by itself.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./assets/mcbash.gif\" width=\"80%\" /\u003e\n\u003c/p\u003e\n\n\n## Quick start\n\n```bash\ngit clone https://github.com/dougy147/mcbash\ncd ./mcbash\nsudo make install\n```\n\n### Docker\n\n```bash\ngit clone https://github.com/dougy147/mcbash\ncd ./mcbash\ndocker-compose up -d\ndocker exec -it mcbash /bin/bash\n```\n\n### AUR\n\nFor Arch users, there is an up-to-date `mcbash` package on the AUR.\n\n## Functionalities overview\n\nAs servers may differ in the way they handle requests, one need to adapt. The key feature of `mcbash` is **flexibility**. It comes with handy options to manage your requests. \n\n### Requests\n\n| Option                       | Functionality                                                |\n|------------------------------|--------------------------------------------------------------|\n| **`-u`**, `--url`            | Server's URL/IP                                              |\n| **`-w`**, `--wait`           | Wait **X** seconds between each requests                     |\n| **`-b`**, `--break`          | Make a break every **X** requests                            |\n| **`-d`**, `--pause-for`      | Break duration (in seconds)                                  |\n| **`-s`**, `--stop`           | Stop McBash after **X** tested MACs                          |\n| **`-t`**, `--timeout`        | Consider request a timeout after **X** seconds               |\n| **`-P`**, `--proxy`          | Set the proxy URL (any authentication method supported)      |\n| **`-pu`**, `--proxy-user`    | Set your proxy credentials `user:password`                   |\n| `--proxy-file`               | Read proxy IPs from a file. Rotation when request timeout    |\n| **`-EA`**, `--enhanced-auth` | Add SN and DevID1 to GET request (and save them if match)    |\n\n### Scan mode\n\n| Option                    | Functionality                                                |\n|---------------------------|--------------------------------------------------------------|\n| `--mac-file`              | Choose a file to read MACs from (MACs should be line by line)|\n| `--seq`                   | Check MACs in sequential order (`--range` is forced)         |\n| `--range`                 | Set a range for checked MACs                                 |\n| **`-F`**, `--from`        | Set range lower boundary (lowest MAC value to check)         |\n|  **`-L`**, `--to`         | Set range higher boundary (highest MAC value to check)       |\n| `--prefix`                | Select MACs prefix when screening in random mode             |\n\n### Others\n\n| Option                    | Functionality                                                |\n|---------------------------|--------------------------------------------------------------|\n| **`-k`**, `--keep`        | Store expired MACs (valid addresses but expired accounts)    |\n| **`-np`**, `--default`    | Don't ask for parameters. Use default configuration          |\n| `--show-only-mac`         | Only outputs found MACs                                      |\n| `--no-checkpoint`         | Don't store checkpoints                                      |\n\n`mcbash --help` displays most common options. \n\nFor *advanced* settings, read the manual : `man mcbash`.\n\n\n### Scan randomly, sequentially, or from file\n\nBy default, MACs are *pseudo*-randomly generated and checked (random mode). \nIf you want to screen sequentially, use `--seq` (sequential mode). \nYou can also read MACs from a file (line by line) with `--mac-file your_file.txt`.\n\n### Scan inside a range\n\nIn sequential mode you need to specify lower and upper bounds of the range of MACs you want to scan (i.e. the \"lowest\" and \"highest\" MAC values).\nYou can do that in random mode too, with the option `--range`.\n\n### Checkpoints\n\nWhen screening sequentially, `mcbash` creates a checkpoint file, storing last checked MAC.\nYou can specify `--no-checkpoint` to bypass that (i.e. no checkpoint will then be saved).\n\n### Proxy works\n\nThe use of a proxy and credentials is supported. Thanks to `curl`, any protocol works.\nHere is an example with proxy and credentials use : `--proxy http://localhost:12345 --proxy-user user:pwd`.\n\n### Default parameters\n\nThe configuration file `$HOME/.config/mcbash/mcbash.conf` contains default options. You can change them according to your needs.\n\n### MACs are stored\n\nWhen a valid MAC is found, it is immediately stored in `$HOME/.mcbash` directory.\n\n## Misc\n\n### Size sometimes matters\n\nFor `00:1A:79:xx:xx:xx`-like MAC addresses (most commons), there are $16^6$ possibilities (≈16.7million). Collision probability on sparsely populated servers is low by definition. So, there won't be too much matches on small ones!\n\n### macOS compatibility\n\nmacOS runs a dinosaur version of bash. But `mcbash` won't allow its users to be left behind. That's why its code is meant to stay retro-compatible. How kind from this little script 😎!\n\n\n## Usage examples\n\n- **Example 0** : `mcbash`\n\nEasiest way to use it! `mcbash` guides you and adapts to your requests.\n\n- **Example 1** : `mcbash -u my-fakedns.bla:8080 -w 1.5 -b 10 -d 3 -s 1500 -t 2`\n\nThe program waits 1.5 seconds between each requests, makes a break every 10 requests for 3 seconds, stops after 1500 MACs checked, and considers a request timeouted after 2 seconds (timeouts trigger a pause to avoid flood).\n\n\n- **Example 2** : `mcbash -u my-fakedns.bla:8080 -F 00:1A:79:00:00:00 -L 00:1A:79:00:11:11`\n\nScans sequentially from `00:1A:79:00:00:00` to `00:1A:79:00:11:11`.\n\n\n- **Example 3** : `mcbash -u my-fakedns.bla:8080 --proxy http://localhost:12345 --proxy-user user:pwd`\n\nEstablishes communications through proxy `http://localhost:12345`, with `user:pwd` username and password.\n\n\n## Instructions for the careless mind 🧠\n\nPower is all relative, and this program's is pretty low; even quite harmless. However, I must release myself of any responsibility in the way you will use it. Indeed, its use might be unappropriate in your country.\n\nAs far as I understand (i.e. poorly), imperative programming is like stacking bricks on top of each other.\nIf there's nothing wrong stacking, climbing the pile might.\nThat way, it's unnecessary to say I'm only responsible for sharing a recipe one could find all the ingredients thanks to any search engine.\n\nSo, illegality is not contained in that program. It can only be in its user's behavior.\nPlease use that script consciously, with and on your personal goods only.\n\n\n## Special thanks to contributors !\n\n\u003ca href=\"https://github.com/ian10951\"\u003e\n  \u003cimg src=\"https://avatars.githubusercontent.com/u/11910714?v=4\" width='50px'\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/jojo141185\"\u003e\n  \u003cimg src=\"https://avatars.githubusercontent.com/u/6240522?v=4\" width='50px'\u003e\n\u003c/a\u003e\n\n\n## Feel free ! 😎\n\nIf `mcbash` has been of any help to you, I'd be glad and thankful !\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/dougy147)\n\nBTC : `bc1q4cflj0e3hwcn5edut654je86upn37p37gut5yk`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdougy147%2Fmcbash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdougy147%2Fmcbash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdougy147%2Fmcbash/lists"}