উত্তর:
System_profiler কমান্ড (অভিমানী আপনি 10.3 অথবা ঊর্ধ্বতন সংস্করণ রয়েছে) সরাসরি উত্তর সহজে মানুষের পাঠযোগ্য যে প্রদান করে, কিন্তু আপনি ব্যবহার করতে পারেন ioreg যেমন সাধারণত দ্রুত সমাপ্ত কাজের জন্য।
system_profiler SPHardwareDataType
মূল হার্ডওয়্যার সম্পর্কিত তথ্য রয়েছে এমন ডেটা টাইপ এবং আপনি প্রয়োজন অনুযায়ী গ্রেপ বা অ্যাডকে জিনিসগুলি আরও কম ব্যবহার করতে পারেন:
system_profiler SPHardwareDataType | awk '/Serial/ {print $4}'
অথবা
ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'
এই দুটি কমান্ডই আধুনিক এসএসডি ম্যাকগুলিতে চালাতে 0.5 থেকে 0.2 সেকেন্ডের মধ্যে সময় নেয়, সুতরাং আপনি যদি কমান্ডটি অনুকূল করতে চান এবং "অপসারণ করতে চান তবে আপনার উত্তরটি 0.005 বা আপনার মধ্যে থাকতে পারে:
ioreg -c IOPlatformExpertDevice -d 2 | awk -F\" '/IOPlatformSerialNumber/{print $(NF-1)}'
এটিও কাজ করে ...
ioreg -l | grep IOPlatformSerialNumber
awk
যে 600 টি ioreg
আউটপুট আউটপুট বের করতে সংস্করণটির চেয়ে এটি টাইপ করা অবশ্যই সহজ । (এছাড়াও - নীচের ভোটারদের কিছু মনে করবেন না - কিছু লোক সত্যিই সংক্ষিপ্ত উত্তর পছন্দ করেন না বা ভুলে যান যে
এটি মনে রাখা সহজ করার জন্য, কেস সংবেদনশীল অনুসন্ধান ব্যবহার করুন:
ioreg -l | grep -i serialnumber | grep -i platform
সি ++ উদাহরণ:
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>
std::string
getSerialNumber()
{
CFStringRef serial;
char buffer[32] = {0};
std::string seriaNumber;
io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,
IOServiceMatching("IOPlatformExpertDevice"));
if (platformExpert)
{
CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert,
CFSTR(kIOPlatformSerialNumberKey),
kCFAllocatorDefault, 0);
if (serialNumberAsCFString) {
serial = (CFStringRef)serialNumberAsCFString;
}
if (CFStringGetCString(serial, buffer, 32, kCFStringEncodingUTF8)) {
seriaNumber = buffer;
}
IOObjectRelease(platformExpert);
}
return seriaNumber;
}
ioreg
এক আমার MBPR তাত্ক্ষণিক কাছে।system_profiler
যদিও এই ম্যাকটিতে আমার বয়স্কদের চেয়ে দ্রুত গতিতে ধীর।