2011-12-29 37 views
9

Tôi biết CFUUID được tạo từ địa chỉ MAC và một vài thứ khác. Vì vậy, có anyways để có được địa chỉ MAC trở lại từ CFUUID?iOS chuyển đổi CFUUID thành địa chỉ MAC

Chúng tôi có một vài thiết bị bluetooth và tất cả người dùng biết là 3 phần cuối cùng của địa chỉ MAC được ghi trên thiết bị. Vì vậy, chúng tôi muốn cung cấp cho người dùng và tùy chọn để chọn thiết bị phù hợp. Về phía iOS, có vẻ như tất cả chúng ta đều có CFUUID. Vì vậy, có một cách để chuyển đổi UUID trở lại địa chỉ mac?

Or even better would be if there's a way to get a peripheral's MAC address directly instead of UUID, but doesn't seem like that's possible

Cảm ơn

+2

CFUUID không được tạo từ MAC. Làm thế nào bạn sẽ lấy được điều đó?Tôi khá chắc chắn rằng nó dễ dàng hơn để có được MAC và gửi nó qua HTTP hoặc bất kỳ giao thức nào khác. – Eimantas

+0

Tôi không nói về UUID của iPhone, tôi đang nói về UUID của Peripheral. Tôi đọc trực tuyến rằng UUID được tạo ra từ một sự kết hợp của địa chỉ MAC và thời gian hiện tại. – user1122025

+0

Bạn nên rõ ràng hơn rằng bạn đang nói về CFUUID trong bối cảnh của CoreBluetooth, và thậm chí cụ thể hơn trong bối cảnh của CBPeripheral. Thật lạ khi CBPeripherals có thuộc tính UUID chứ không phải thuộc tính địa chỉ, vì thiết bị bluetooth mà chúng đại diện có địa chỉ chứ không phải UUID. Vì vậy, nó sẽ làm cho tinh thần UUID cụ thể gắn liền với một CBPeripheral được dựa trên địa chỉ thiết bị bluetooth, nhưng tôi đã không nhìn thấy bất kỳ xác nhận này. – barrycburton

Trả lời

1

Vâng, như bạn có thể học được từ những ý kiến ​​cho câu hỏi của bạn, câu trả lời rõ ràng là: NO. Nó không thể (thực tế) để có được những hạt giống tạo ra một UUID cụ thể. Với điều kiện là thuật toán tạo UUID của bạn đã sử dụng Địa chỉ MAC của thiết bị để tạo ra nó, và tôi đoán bạn không thể đảm bảo rằng nó là trường hợp cho bộ tạo UUID mà bạn sử dụng, trừ khi bạn có quyền truy cập vào mã UUID Generator hoặc thuật toán (UUID Version 1 probably?) và nó không phải là một hoạt động đục cho bạn (Ngay lập tức đánh bại mục đích của thuật toán tạo uuid).

Mặc dù bạn rõ ràng đang sử dụng địa chỉ MAC của thiết bị, các thành phần khác như dấu thời gian, băm, UDID (Thiết bị iOS) và vân vân. Thực tế là địa chỉ MAC, có thể chỉ là một trong nhiều yếu tố được sử dụng để tạo ra UUID vì vậy nếu bạn tiêu tốn rất nhiều sức mạnh tính toán để cố gắng giải mã nó khỏi một mẫu UUID lớn được tạo ra bởi cùng một hệ thống theo cùng điều kiện; Có lẽ chúng ta sẽ nói về một máy tính lượng tử lãng phí sức mạnh tính toán cố gắng khám phá nhiều kết hợp như các hạt trong vũ trụ quan sát để bạn có được địa chỉ MAC mà bạn có thể nhận được như một đặc tính từ một thiết bị ngoại vi Bluetooth nếu bạn muốn. mục đích có một UUID ở nơi đầu tiên, một lần nữa. Mặt khác, thêm vào những gì ai đó đã nhận xét về câu hỏi của bạn: lý do bạn thấy UUID quá nhàm chán, xây dựng trên đầu trang của ý tưởng đoạn trước, là bạn có thể tránh va chạm: Tạo bản sao không chỉ từ những bản sao do máy tính của bạn tạo ra, nhưng từ tất cả các thiết bị khác được tạo ra bởi mọi thiết bị ở mọi thời điểm trong ngày (để xác thực yêu cầu, tạo khóa chỉ mục chuỗi trong cơ sở dữ liệu hoặc xác định dịch vụ và đặc điểm) để dịch vụ hoặc đặc tính mát mẻ của bạn có tên:

AAAAAAAA-BBBB-CCCC-DDDD-EEEEFFFF6666 

không bị nhầm lẫn với dịch vụ hoặc đặc điểm foo mát khác có cùng UUID.

Nói chung, để biết thêm thông tin, hãy kiểm tra wikipedia hoặc chỉ Hướng dẫn lập trình lõi Bluetooth, tạo cổng thông tin dành cho nhà phát triển. Nó vẫn thuộc NDA nên bạn phải là Nhà phát triển iOS đã đăng ký với thông tin đăng nhập chương trình dành cho nhà phát triển đang hoạt động để đọc nó.

1

Tôi đang tìm cách triển khai cấu hình tĩnh, độc lập nền tảng của thiết bị BLE. Tôi đã nhận được nản lòng (UUID của Apple là +/- vô nghĩa, và MAC/BDADDR có thể thu được trên hầu hết/tất cả các nền tảng khác không thể truy cập từ CoreBluetooth). May thay, tôi nhận thấy rằng cấu hình "Device Information Service" (0x180A) chứa thuộc tính "System ID" (0x2A23) mã hóa địa chỉ MAC/BDADDR duy nhất của thiết bị. Tôi không biết nếu nó là bắt buộc đối với một thiết bị BLE để lộ dịch vụ này, tuy nhiên.

Các vấn đề liên quan