{"id":18020874,"url":"https://github.com/rm3l/mac-oui","last_synced_at":"2025-08-13T18:38:10.170Z","repository":{"id":37045370,"uuid":"266527661","full_name":"rm3l/mac-oui","owner":"rm3l","description":"Microservice for looking up manufacturers from MAC addresses. Built with Quarkus.","archived":false,"fork":false,"pushed_at":"2025-03-22T07:41:27.000Z","size":432,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-22T14:22:07.233Z","etag":null,"topics":["cloud-native","docker","graalvm","graalvm-native-image","jakarta-ee","java","jvm","kubernetes","native-image","quarkus","quarkus-gradle","quarkusio"],"latest_commit_sha":null,"homepage":"https://mac-oui.onrender.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rm3l.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-24T11:34:34.000Z","updated_at":"2025-03-22T07:41:30.000Z","dependencies_parsed_at":"2023-02-12T11:31:09.447Z","dependency_job_id":"acc146d0-c083-46fb-b10e-c81c56ac5457","html_url":"https://github.com/rm3l/mac-oui","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm3l%2Fmac-oui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm3l%2Fmac-oui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm3l%2Fmac-oui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm3l%2Fmac-oui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rm3l","download_url":"https://codeload.github.com/rm3l/mac-oui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245739011,"owners_count":20664381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cloud-native","docker","graalvm","graalvm-native-image","jakarta-ee","java","jvm","kubernetes","native-image","quarkus","quarkus-gradle","quarkusio"],"created_at":"2024-10-30T06:08:07.014Z","updated_at":"2025-03-26T21:32:31.054Z","avatar_url":"https://github.com/rm3l.png","language":"Java","funding_links":["https://paypal.me/rm3l"],"categories":[],"sub_categories":[],"readme":"# mac-oui\n\n[![Build](https://github.com/rm3l/mac-oui/workflows/Build%20and%20Publish%20Docker%20Image/badge.svg)](https://github.com/rm3l/mac-oui/actions?query=workflow%3A%22Build+and+Publish+Docker+Image%22)\n\n\u003c!-- [![Heroku](https://img.shields.io/badge/heroku-deployed%20on%20free%20dyno-blue.svg)](https://mac-oui-api.herokuapp.com/graphiql) --\u003e\n[![Render](https://img.shields.io/badge/deployed%20on%20render-blue.svg)](https://mac-oui.onrender.com/D0-DF-9A-D8-44-4B)\n\n[![Docker Stars](https://img.shields.io/docker/stars/rm3l/mac-oui.svg)](https://hub.docker.com/r/rm3l/mac-oui)\n[![Docker Pulls](https://img.shields.io/docker/pulls/rm3l/mac-oui.svg)](https://hub.docker.com/r/rm3l/mac-oui)\n\n[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/rm3l/mac-oui/blob/master/LICENSE)\n\n\nMicroservice for looking up manufacturers from MAC addresses, written in Java\nand leveraging [Quarkus](https://quarkus.io/), the Supersonic Subatomic Java Framework.\n\nThis supports non-interruptable updates and can update the database while the server is running.\n\nAn Organizationally Unique Identifier (OUI) is a 24-bit number that uniquely identifies a vendor,\nmanufacturer, or other organization globally or worldwide.\n\nThese are purchased from the Institute of Electrical and Electronics Engineers, Incorporated (IEEE) Registration Authority. \nThey are used as the first portion of derivative identifiers to uniquely identify a particular piece of equipment such as Ethernet MAC addresses or other Fibre Channel devices.\n\nIn MAC addresses, the OUI is combined with a 24-bit number (assigned by the owner) to form the address.\nThe first 24 bits of the address are the OUI.\n\nSee [this article](http://en.wikipedia.org/wiki/Organizationally_unique_identifier) for further details.\n\n\n## Using the server\n\n### Running the application in dev mode\n\nYou can run your application in dev mode that enables live coding using:\n```\n./gradlew quarkusDev\n```\n\nThen visit http://localhost:8080/q/swagger-ui (accessible only in dev mode) for an interactive web UI playground.\n\n### Packaging and running the application\n\nThe application can be packaged using `./gradlew quarkusBuild`.\nIt produces the `mac-oui-1.6.0-SNAPSHOT-runner.jar` file in the `build` directory.\nBe aware that it’s not an _über-jar_ as the dependencies are copied into the `build/lib` directory.\n\nThe application is now runnable using `java -jar build/mac-oui-1.6.0-SNAPSHOT-runner.jar`.\n\nIf you want to build an _über-jar_, just add the `--uber-jar` option to the command line:\n```\n./gradlew quarkusBuild --uber-jar\n```\n\n### Creating a native executable\n\nYou can create a native executable using: `./gradlew build -Dquarkus.package.type=native`.\n\nOr, if you don't have GraalVM installed, you can run the native executable build in a container using: `./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true`.\n\nYou can then execute your native executable with: `./build/mac-oui-1.6.0-SNAPSHOT-runner`\n\nIf you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling#building-a-native-executable.\n\n### Docker\n\nA Docker repository with the microservice can be found here: https://hub.docker.com/r/rm3l/mac-oui\n\nTo fetch the docker image, run:\n\n```bash\ndocker image pull rm3l/mac-oui\n```\n\nTo run the server with the default options and expose it on port 8080, run:\n\n```bash\ndocker container run --rm -p 8080:8080 rm3l/mac-oui\n```\n\n### Kubernetes\n\nThis microservice is also published to [my Helm Charts repository](https://helm-charts.rm3l.org/), so as to be deployable to a Kubernetes Cluster using [Helm](https://helm.sh/).\n\nIt is listed on Artifact Hub : https://artifacthub.io/packages/helm/rm3l/mac-oui\n\n```bash\n$ helm repo add rm3l https://helm-charts.rm3l.org\n$ helm install my-mac-oui rm3l/mac-oui\n```\n\nSee https://artifacthub.io/packages/helm/rm3l/mac-oui or https://github.com/rm3l/helm-charts/blob/main/charts/mac-oui/README.md for\nall customizable values.\n\n\n## The API\n\nFor simplicity, this microservice exposes the following application endpoints:\n\n### `GET /?mac=\u003cmac-address-or-oui-prefix\u003e`\n\nExample:\n\n```\ncurl http://localhost:8080/?mac=9C:B6:D0:A0:B0:C0\n\n{\n  \"data\": {\n    \"comment\": null,\n    \"country\": null,\n    \"manufacturer\": \"Rivet Networks\",\n    \"prefix\": \"9C:B6:D0\"\n  }\n}\n```\n\n### `GET /{mac-address-or-oui-prefix}`\n\nExample:\n\n```\ncurl http://localhost:8080/9C-B6-D0\n\n{\n  \"data\": {\n    \"comment\": null,\n    \"country\": null,\n    \"manufacturer\": \"Rivet Networks\",\n    \"prefix\": \"9C:B6:D0\"\n  }\n}\n```\n\n## In use in the following apps/services\n\n(If you use this project, please drop me a line at \u0026lt;armel@rm3l.org\u0026gt; \n(or better, fork, modify this file and submit a pull request), so I can list your project(s) here)\n\n* [DD-WRT Companion](https://ddwrt-companion.app), to provide comprehensive and actionable insights about devices connected to a [DD-WRT](https://dd-wrt.com/) router \n* [Androcker](https://play.google.com/store/apps/details?id=org.rm3l.container_companion), a companion app for Docker\n\n\n## Contribution Guidelines\n\nContributions and issue reporting are more than welcome. So to help out, do feel free to fork this repo and open up a pull request.\nI'll review and merge your changes as quickly as possible.\n\nYou can use [GitHub issues](https://github.com/rm3l/mac-oui/issues) to report bugs.\nHowever, please make sure your description is clear enough and has sufficient instructions to be able to reproduce the issue.\n\n\n## Developed by\n\n* Armel Soro\n  * [keybase.io/rm3l](https://keybase.io/rm3l)\n  * [rm3l.org](https://rm3l.org) - \u0026lt;armel@rm3l.org\u0026gt; - [@rm3l](https://twitter.com/rm3l)\n  * [paypal.me/rm3l](https://paypal.me/rm3l)\n  * [coinbase.com/rm3l](https://www.coinbase.com/rm3l)\n\n\n## Credits / Inspiration\n\n* [oui](https://github.com/klauspost/oui), by @klauspost\n\n\n## License\n\n    The MIT License (MIT)\n\n    Copyright (c) 2020-2021 Armel Soro\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy\n    of this software and associated documentation files (the \"Software\"), to deal\n    in the Software without restriction, including without limitation the rights\n    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n    copies of the Software, and to permit persons to whom the Software is\n    furnished to do so, subject to the following conditions:\n\n    The above copyright notice and this permission notice shall be included in all\n    copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n    SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frm3l%2Fmac-oui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frm3l%2Fmac-oui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frm3l%2Fmac-oui/lists"}