Obtener MAC de un equipo remoto

13/07/2006 - 11:48 por XiScO | Informe spam
hola!
Estoy intentando obtener datos de un pc remoto desde mi aplicacion en VB
2005. El caso es que hago u nping y si contesta obtengo el nombre dns (es
posible obtener el netbios?), pero tambien me gustaria obtener la mac, he
visto el metodo Getphysicaladdres, pero solo vale para la maquina en la que
se ejecuta el programa,no?
Salu2

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
13/07/2006 - 12:18 | Informe spam
"XiScO" wrote in message
news:
Estoy intentando obtener datos de un pc remoto desde mi aplicacion en VB
2005. El caso es que hago u nping y si contesta [...]
pero tambien me gustaria obtener la mac,



Si después de hacer un ping ejecutas un "arp -a" verás la dirección MAC
asociada a la IP.

Si no te vale con arrancar un programa externo, y quieres conocer la MAC
íntegramente por programación, la solución es usar WMI (Windows Management
Instrumentation), implementado en .Net en el espacio de nombres
System.Management.
Respuesta Responder a este mensaje
#2 XiScO
18/07/2006 - 09:49 | Informe spam
Hola!
Gracias por la respuesta, me gustaria hacerlo desde mi propio programa,
porque con arp -a me saldra una lista de macs, aunque es una solucion. Me
podrias explicar lo del WMI,es que no tengo ni idea.
Salu2
Alberto Poblacion wrote:

"XiScO" wrote in message
news:
Estoy intentando obtener datos de un pc remoto desde mi aplicacion en VB
2005. El caso es que hago u nping y si contesta [...]
pero tambien me gustaria obtener la mac,



Si después de hacer un ping ejecutas un "arp -a" verás la dirección MAC
asociada a la IP.

Si no te vale con arrancar un programa externo, y quieres conocer la
MAC
íntegramente por programación, la solución es usar WMI (Windows Management
Instrumentation), implementado en .Net en el espacio de nombres
System.Management.
Respuesta Responder a este mensaje
#3 Alberto Poblacion
18/07/2006 - 10:20 | Informe spam
"XiScO" wrote in message
news:
Gracias por la respuesta, me gustaria hacerlo desde mi propio programa,
porque con arp -a me saldra una lista de macs, aunque es una solucion.



Bueno, mi idea era usar Process.Start para lanzar el arp -a y redirigir
su salida a un stream para capturarla en tu programa, y que el programa
filtrase las lineas para quedarse solo con la que tenga la IP que estás
buscando.

Me
podrias explicar lo del WMI,es que no tengo ni idea.



"Windows Management Instrumentation". Se trata de una serie de librerías
que vienen con Windows y que te dan información acerca de múltiples aspectos
del hardware y del comportamiento de la máquina. En .Net, el acceso a esas
librerías está implementado dentro del espacio de nombres System.Management.
Para utilizarlo, primero tendrás que añadir en tu programa una referencia a
System.Management.dll, que no viene puesta por defecto. Una vez puesta la
referencia, se utiliza un código parecido al siguiente:

Dim MyobjectQuery As New System.Management.ObjectQuery("select *
from Win32_NetworkAdapterConfiguration")
Dim MySearcher As New
System.Management.ManagementObjectSearcher(MyobjectQuery)
For Each Mgmt As System.Management.ManagementObject In
MySearcher.Get()
Try
MessageBox.Show(Mgmt("Caption").ToString)
MessageBox.Show(Mgmt("MACAddress").ToString)
Catch
End Try
Next

El código anterior enumera las direcciones MAC de la máquina en la que lo
ejecutas, pero si no me equivoco existe dentro de System.Management todo lo
necesario para acceder a una máquina remota, siempre que tengas permisos
suficientes y que el cortafuegos no bloquee el acceso a WMI. Nunca he usado
WMI para acceder a otra máquina, no te puedo dar los detalles de cómo se
hace.
Respuesta Responder a este mensaje
#4 XiScO
18/07/2006 - 14:05 | Informe spam
Ok, gracias. Me parece que la primera opcion es mas sencilla ;)
Salu2
Alberto Poblacion wrote:

"XiScO" wrote in message
news:
Gracias por la respuesta, me gustaria hacerlo desde mi propio programa,
porque con arp -a me saldra una lista de macs, aunque es una solucion.



Bueno, mi idea era usar Process.Start para lanzar el arp -a y
redirigir
su salida a un stream para capturarla en tu programa, y que el programa
filtrase las lineas para quedarse solo con la que tenga la IP que estás
buscando.

Me
podrias explicar lo del WMI,es que no tengo ni idea.



"Windows Management Instrumentation". Se trata de una serie de
librerías
que vienen con Windows y que te dan información acerca de múltiples
aspectos del hardware y del comportamiento de la máquina. En .Net, el
acceso a esas librerías está implementado dentro del espacio de nombres
System.Management. Para utilizarlo, primero tendrás que añadir en tu
programa una referencia a System.Management.dll, que no viene puesta por
defecto. Una vez puesta la referencia, se utiliza un código parecido al
siguiente:

Dim MyobjectQuery As New System.Management.ObjectQuery("select *
from Win32_NetworkAdapterConfiguration")
Dim MySearcher As New
System.Management.ManagementObjectSearcher(MyobjectQuery)
For Each Mgmt As System.Management.ManagementObject In
MySearcher.Get()
Try
MessageBox.Show(Mgmt("Caption").ToString)
MessageBox.Show(Mgmt("MACAddress").ToString)
Catch
End Try
Next

El código anterior enumera las direcciones MAC de la máquina en la que
lo
ejecutas, pero si no me equivoco existe dentro de System.Management todo
lo necesario para acceder a una máquina remota, siempre que tengas
permisos suficientes y que el cortafuegos no bloquee el acceso a WMI.
Nunca he usado WMI para acceder a otra máquina, no te puedo dar los
detalles de cómo se hace.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida