Ana bilgisayarın MAC adresinin ne olduğunu bilmesi gereken bir komut dosyası yazıyorum.MAC Adresim Ruby ile programlamal olarak nasıl edinilir
Bunu nasıl yapacağını bilen var mı?
Ana bilgisayarın MAC adresinin ne olduğunu bilmesi gereken bir komut dosyası yazıyorum.MAC Adresim Ruby ile programlamal olarak nasıl edinilir
Bunu nasıl yapacağını bilen var mı?
Bu adresi almak için herhangi bir Ruby yerleşik işlevi olduğunu düşünmüyorum; muhtemelen değeri listelemek için bir sistem çağrısı yapmanız gerekir (ör. UNIX'teki ifconfig
, Win32'de ipconfig /all
) ve çıktıyı gerektiği gibi ayrıştırmanız gerekir. Bu (denenmemiş pseudocode) gibi
şey:
def mac_address
platform = RUBY_PLATFORM.downcase
output = `#{(platform =~ /win32/) ? 'ipconfig /all' : 'ifconfig'}`
case platform
when /darwin/
$1 if output =~ /en1.*?(([A-F0-9]{2}:){5}[A-F0-9]{2})/im
when /win32/
$1 if output =~ /Physical Address.*?(([A-F0-9]{2}-){5}[A-F0-9]{2})/im
# Cases for other platforms...
else nil
end
end
Ouch. Oldukça basit olan IP Adresinin alınmasına benzer olacağını düşündüm. – mcass20
Örneğinizle mücadele eden tecrübeli bir .NET dev var. Sadece Mac'lerde çalışacağından sadece nil döndürdüğünden birkaç satır ilerledim. – mcass20
@ mcass20: oops, win32 regex'ini dolduruyor, sadece düzeltildi (en azından Win XP için). – maerics
yapar macaddr
adında bir mücevher vardır, ama temelde sistem en ifconfig
çıktısını ayrıştırma ediyor. http://www.ruby-forum.com/topic/113956
adresinde geliştirilmekte olan konu görüntülenmekte. Hangi OS platformundasınız? Bunu bilmeden, yararlı bir cevap mümkün değildir. –
Sanırım bu yardımcı olur. Mac OS X – mcass20