Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2012
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Averiguar MAC por una IP

Hola buenas tardes;

Estoy desarroyando un programa y para ello me pasaron un codigo delcuan estoy aprendiendo pero me ocurre una cosa y la verdad no lo entiendo por ello recurro a ustedes por si me pueden echar una mano, el codigo es el siguiente:

Código Delphi [-]
    uses winsock;
    type
    PULONG = ^ULONG;
    function SendARP(DestIP,SrcIP: in_addr; pMacAddr,PhyAddrLen: PULONG): DWORD;
    stdcall; external 'iphlpapi.dll' name 'SendARP';
    function ObtenerMAC(IP: String): String;
    var
    i: Integer;
    dwRetVal: DWORD;
    DestIp, SrcIp: in_addr;
    MacAddr: array[0..1] of ULONG;
    PhysAddrLen: ULONG;
    PhysAddr: PByte;
    begin
    DestIp.S_addr:= 0;
    SrcIp.S_addr:= 0;
    PhysAddrLen:= 6;
    DestIp.S_addr:= inet_addr(PChar(IP));
    dwRetVal:= SendARP(DestIp, SrcIp, @MacAddr, @PhysAddrLen);
    Result:= EmptyStr;
    if dwRetVal = NO_ERROR then
    begin
    PhysAddr:= PByte(@MacAddr);
    for i := 1 to Sizeof(MacAddr)-2 do
    begin
    if Result= EmptyStr then
    Result:= IntToHex(PhysAddr^,2)
    else
    Result:= Result + '-' + IntToHex(PhysAddr^,2);
    inc(PhysAddr);
    end;
    end;
    end;
    // Por ejemplo
    ShowMessage(ObtenerMAC('143.1.14.202'));

La linea 22 la modifique por -> DestIp.S_addr:= inet_addr(PAnsiChar(IP));
El caso es que si sustituyo inet_addr(PAnsiChar(IP)) por inet_addr(PAnsiChar('143.1.14.202')) al ejecutar el programa me da la MAC correcta, sin embargo si en su lugar lo
sustituyo por inet_addr(PAnsiChar(edit1.text)) ejecuto el programa, introduzco en el campo edit la misma ip pero al clicar en el botón que llama a la función el programa me muestra en blanco el campo MAC.

y es aquí don de me pierdo, necesito que el programa me permita introducir cualquier IP y que este me diga su MAC ¿que estoy haciendo mal?

gracias por adelantado

Última edición por Casimiro Notevi fecha: 05-07-2012 a las 18:27:18.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo averiguar el PID de un proceso Ðαяισš Varios 20 01-01-2009 01:35:33
Averiguar propiedades de pc D@byt Varios 3 05-10-2005 17:13:06
Averiguar equipos en red salvanano Internet 3 02-09-2005 00:44:02
averiguar codigos unko! Internet 11 03-02-2005 02:51:57
Averiguar estructura de frm brandolin MySQL 0 20-10-2003 22:23:57


La franja horaria es GMT +2. Ahora son las 12:47:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi