Estoy escribiendo un script que necesita saber cuál es la dirección MAC de la computadora host.Cómo obtener mi dirección MAC programáticamente con Ruby
¿Alguien sabe cómo hacer esto?
Estoy escribiendo un script que necesita saber cuál es la dirección MAC de la computadora host.Cómo obtener mi dirección MAC programáticamente con Ruby
¿Alguien sabe cómo hacer esto?
No creo que haya ninguna función incorporada de Ruby para recuperar esa dirección; es probable que deba realizar una llamada al sistema para listar el valor (por ejemplo, ifconfig
en UNIX, ipconfig /all
en Win32) y analizar la salida según sea necesario.
Algo como esto (pseudocódigo no probado):
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. Pensé que sería similar a recuperar la dirección IP, lo cual fue bastante sencillo. – mcass20
Soy un experimentado desarrollador de .NET que lucha con su muestra. Lo reduje a un par de líneas, ya que solo se ejecutará en Mac pero simplemente devuelve nada. – mcass20
@ mcass20: oops, estropeó la expresión regular de win32, simplemente lo arregló (al menos para Win XP). – maerics
Hay una gema llamada macaddr
que hace esto, pero básicamente es analizando la salida del sistema de ifconfig
. Puede ver el hilo cuando se estaba desarrollando en http://www.ruby-forum.com/topic/113956
¿En qué sistema operativo se encuentra? Sin saber eso, probablemente no sea posible una respuesta útil. –
Supongo que eso ayudaría. Mac OS X – mcass20