#ethernet #vendor #mac #mac-address

manuf

Ethernet vendor codes, and well-known MAC addresses

3 unstable releases

0.2.0 May 20, 2020
0.1.1 Aug 10, 2018
0.1.0 Aug 9, 2018

#12 in #vendor

Download history 14/week @ 2024-07-22 115/week @ 2024-07-29 18/week @ 2024-08-05 44/week @ 2024-08-12 13/week @ 2024-08-19 38/week @ 2024-08-26 8/week @ 2024-09-02 31/week @ 2024-09-09 31/week @ 2024-09-16 77/week @ 2024-09-23 47/week @ 2024-09-30 15/week @ 2024-10-07 65/week @ 2024-10-14 26/week @ 2024-10-21 57/week @ 2024-10-28 38/week @ 2024-11-04

187 downloads per month

MIT license

530KB
172 lines

rust-manuf LICENSE Crates.io Version Document Build Status Codecov

rust-manuf is a Rust library provides the Ethernet vendor codes, and well-known MAC addresses

Usage

To use rust-manuf, add this to your Cargo.toml:

[dependencies]
manuf = "0.2"

Use vendor function to find name and description base on an ethernet (MAC) address.

assert_eq!(
    manuf::vendor([0x8c, 0x85, 0x90, 0x0b, 0xcb, 0x9e]),
    Some(("Apple", "Apple, Inc."))
);

Use prefix function to find vendor's prefix and mask for the ethernet (MAC) address.

assert!(
    manuf::prefix("Apple")
        .any(|prefix| prefix == ([0x8c, 0x85, 0x90, 0x00, 0x00, 0x00], 24))
);

use parse function to extract verdor's ((prefix, prefix_length), (name, description)) from a manuf file.

let f = File::open("manuf").unwrap();
let r = BufReader::new(f);

for ((prefix, prefix_len), (name, desc)) in manuf::parse(r) {
    println!("{:?}/{}\t{}\t{}", prefix, prefix_len, name, desc)
}

Note: The manuf file was generated by the Wireshark project.

If you want to use the latest version of manuf file, please add the latest feature.

[dependencies]
manuf = { version = "0.2", features = ["latest"] }

License

Released under the terms of the MIT license.

Dependencies