DEV Community

จัดการข้อมูล Mac Address ให้อยู่หมัดด้วย PostgreSQL

บทนำ

เมื่อต้องจัดการข้อมูลที่เกี่ยวข้องกับระบบเครือข่ายใน PostgreSQL MAC Address จะมีบทบาทสำคัญในการติดตามอุปกรณ์ บันทึกกิจกรรมเครือข่าย และจัดการความปลอดภัย รู้หรือไม่ PostgreSQL มีประเภทข้อมูล macaddr ในตัวเพื่อจัดการ MAC Address อย่างมีประสิทธิภาพ
บทความนี้เราจะอธิบายเกี่ยวกับ:

  1. Mac Address คืออะไร

2.เหตุใดคุณจึงควรใช้ macaddr แทนฟิลด์ข้อความ

3.วิธีจัดเก็บ ค้นหา และจัดรูปแบบที่อยู่ MAC ใน PostgreSQL

4.แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างดัชนีและเพิ่มประสิทธิภาพการค้นหา MAC Address

Mac Address คืออะไร

MAC address (Media Access Control Address) คือ หมายเลขประจำเครื่องเฉพาะ ที่ใช้ระบุอุปกรณ์เครือข่าย (Network Interface) เช่น คอมพิวเตอร์, โทรศัพท์มือถือ, เราเตอร์, Wi-Fi card ฯลฯ ในระดับ Layer 2 ของ OSI Model (Data Link Layer) โดยมีรูปแบบ รหัสแบบ 16 ตัวอักษร (6 ไบต์ = 48 บิต) เขียนในรูป เลขฐาน 16 (Hexadecimal) เช่น

00:1A:2B:3C:4D:5E
Enter fullscreen mode Exit fullscreen mode

โดยค่า mac address จะบ่งบอกถึง

ส่วนของ MAC Address ขนาด ความหมาย
OUI (Organizationally Unique Identifier) 3 ไบต์แรก ระบุผู้ผลิต (เช่น Apple, Intel)
NIC Specific 3 ไบต์หลัง รหัสเฉพาะของการ์ดอุปกรณ์นั้น

เหตุใดคุณจึงควรใช้ macaddr แทนฟิลด์ข้อความ

เราก็จะเกิดคำถามว่าทำไม Postgres ต้องมีการข้อมูลประเภท macaddr สร้างในเมื่อเราสามารถใช้ข้อมูลประเภท text ได้ซึ่งประโยชน์ของข้อมูลประเภท macaddr คือ

  • ประสิทธิภาพการจัดเก็บ ใช้เพียง 6 ไบต์แทนการแสดงข้อความที่ยาวกว่า
  • การจัดรูปแบบอัตโนมัติ รับประกันรูปแบบมาตรฐาน (08:00:2b:01:02:03)
  • การค้นหาที่รวดเร็วยิ่งขึ้น รองรับการสร้างดัชนีที่มีประสิทธิภาพสำหรับการค้นหาอย่างรวดเร็ว
  • การรองรับการเปรียบเทียบในตัว อนุญาตให้มีการเปรียบเทียบ =, <, > สำหรับการเรียงลำดับและการกรอง

วิธีจัดเก็บ ค้นหา และจัดรูปแบบที่อยู่ MAC ใน PostgreSQL

1.การสรา้งตารางที่มีcolcumn ที่มีข้อมูลประเภท macaddr

CREATE TABLE devices (
    id SERIAL PRIMARY KEY,
    device_name TEXT NOT NULL,
    mac_address MACADDR UNIQUE
);
Enter fullscreen mode Exit fullscreen mode

หมายเหตุต้องมีการกำหนดข้อจำกัด ค่า mac_address เป็น UNIQUE เพื่อป้องกันการเก็บค่า mac address ซ้ำ

2.การเก็บข้อมูล macaddr ดำเนินการผ่านคำสั่ง

INSERT INTO devices (device_name, mac_address) 
VALUES ('Router', '08:00:2b:01:02:03');
Enter fullscreen mode Exit fullscreen mode

หมายเหตุในกรณีที่เราบันทึกค่า mac address ที่ไม่มี colon(08002b010203) เมื่อบันทึกลงฐานข้อมูลจะมีการจัด format ให้ถูกต้อง

3.การเรียกดูข้อมูลผ่านคำสั่ง

SELECT * FROM devices WHERE mac_address = '08:00:2b:01:02:03';
Enter fullscreen mode Exit fullscreen mode

แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างดัชนีและเพิ่มประสิทธิภาพการค้นหา MAC Address

เราสามารถเพิ่มประสิทธิธภาพในการเรียกดูข้อมูลประเภท macaddr ผ่านการสรา้ง index

CREATE INDEX mac_index ON devices (mac_address);
Enter fullscreen mode Exit fullscreen mode
  1. การจัดรูปแบบ MAC Address โดยลบเฉพาะของผู้จำหน่ายของที่อยู่ MAC การตัดทอนที่อยู่ MAC (โดยเก็บเฉพาะตัวระบุเฉพาะขององค์กรหรือ OUI):
SELECT macaddr_trunc(mac_address) FROM devices;
Enter fullscreen mode Exit fullscreen mode

จะได้ผลลัพธ์เป็น 08:00:2b:00:00:00

ส่งท้าย

Postgres ได้ให้ประเภทข้อมูล macaddr ซึ่งช่วยให้จัดการข้อมูลเกี่ยวกับการจัดการอุปกรณ์เครือข่ายการใช้งานจริงในการจัดเก็บที่อยู่ MAC ใน PostgreSQL

  • การรักษาความปลอดภัยเครือข่ายเพื่อติดตามอุปกรณ์ที่เข้าถึงเครือข่าย
  • การใช้งาน IoT (Internet of Things) เพื่อตรวจสอบอุปกรณ์อัจฉริยะด้วยที่อยู่ MAC เฉพาะ
  • การจัดการสินค้าคงคลังและสินทรัพย์ ระบุฮาร์ดแวร์ที่เป็นของบริษัท
  • ระบบควบคุมการเข้าถึงในการรับรองผู้ใช้ตามที่อยู่ MAC ของอุปกรณ์

Top comments (0)