17 releases

0.4.11 Sep 7, 2024
0.4.10 May 16, 2024
0.4.9 Apr 5, 2024
0.4.8 Oct 2, 2023
0.3.2 Mar 28, 2021

#421 in Network programming

Download history 166/week @ 2024-07-29 7/week @ 2024-08-05 1/week @ 2024-08-12 7/week @ 2024-08-19 25/week @ 2024-08-26 200/week @ 2024-09-02 81/week @ 2024-09-09 75/week @ 2024-09-16 66/week @ 2024-09-23 44/week @ 2024-09-30 80/week @ 2024-10-07 78/week @ 2024-10-14 42/week @ 2024-10-21 34/week @ 2024-10-28 42/week @ 2024-11-04 29/week @ 2024-11-11

158 downloads per month
Used in netscanner

Custom license

6.5MB
263 lines

MAC Address lookup tool

Linux Arm7 Linux x86_64 macOS Windows Crates.io Documentation

Lookup the MAC Address for a corresponding details (eg: org, created, etc...)

Requirements

  • Rust 1.70+ (edition 2021)

Compile

  • Dev
cargo b
  • Release
cargo b --release

Usage

You can include this in your Cargo.toml file:

[dependencies]
mac_oui = "0.4.10"

If you want to use it with the inbuilt oui db; then:

[dependencies]
mac_oui = { version = "0.4.10", features = ["with-db"] }

and then

use mac_oui::Oui;

fn main () {
    let oui_db = Oui::default();
    assert!(oui_db.is_ok());
}

Running the Example

You can run the default example that is included in the following manner.

  • cargo run --example mac_lookup <mac address> eg:
cargo run --features="with-db" --example mac_lookup '70:B3:D5:e7:4f:81'
    Finished dev [optimized + debuginfo] target(s) in 1.54s
     Running `target/debug/examples/mac_lookup '70:B3:D5:e7:4f:81'`
Entry {
    oui: "70:B3:D5",
    is_private: false,
    company_name: "Ieee Registration Authority",
    company_address: "445 Hoes Lane Piscataway NJ 08554 US",
    country_code: "US",
    assignment_block_size: "MA-L",
    date_created: "2014-01-12",
    date_updated: "2016-04-27",
}
  • Example of lookup by Manufacturer
$ cargo run --features="with-db" --example manufacturer_lookup "Apple, Inc"
    Finished dev [optimized + debuginfo] target(s) in 0.02s
     Running `target/debug/examples/manufacturer_lookup 'Apple, Inc'`
[
    Entry {
        oui: "...",
        is_private: false,
        company_name: "Apple, Inc",
        company_address: "1 Infinite Loop Cupertino CA 95014 US",
        country_code: "US",
        assignment_block_size: "MA-L",
        date_created: "2017-02-21",
        date_updated: "2017-02-21",
    },
    <clip>....
]
  • Example Getting a list of Manufacturers
$ cargo run --features="with-db" --example db_stats
    Finished dev [optimized + debuginfo] target(s) in 0.06s
     Running `target/debug/examples/db_stats`
Total Records= 51615
Total Manufacturers= 30840
Total MAC Addrs= 51615

====Manufacturers====
[
    "\"Azimut\" Production Association Jsc",
    "\"Continent\" Co Ltd",
    "\"Meta-chrom\" Co Ltd",
    "\"Rpc \"Energoautomatika\" Ltd",
    "(UN)Manned",
    "+plugg srl",
    "01db-Metravib",
    "1.A Connect GmbH",
    "1000eyes GmbH",
    "100fio networks Tech Llc",
    "10net Communications/Dca",
    "11811347 Canada Inc",
    "11wave Technonlogy Co, Ltd",
    "12Sided Tech, Llc",
    "1394 Printer Working Group",
    "1394 Trade Association",
    "16063",
    "1Net Corp",
    "1Verge Internet Tech (Beijing) Co, Ltd",
    "1more",
]
...
[
    "杭州德澜科技有限公司(HangZhou Delan Tech Co, Ltd)",
    "\u{200b}Asung Techno Co, Ltd",
    "éolane",
    "Östling Marking Systems GmbH",
    "Öresundskraft AB",
    "Åmic AB",
    "µTech Tecnologia Ltda",
    "«Intellect module» Llc",
    "zxsolution",
    "zte Corp",
    "zhejiang yuanwang communication technolgy Co, Ltd",
    "zhejiang ebang communication Co, Ltd",
    "zhejiang Dusun Electron Co, Ltd",
    "zhejiang Anhong Tech Co, Ltd",
    "z-max mediasolution",
    "yLez Tech Pte Ltd",
    "xxter b.v.",
    "xvtec Ltd",
    "xn systems",
    "xmi systems",
]

Dependencies

~1.8–2.6MB
~40K SLoC