Ver Mensaje Individual
  #6  
Antiguo 03-05-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Reputación: 19
MaMu Va por buen camino
1) 2) 5) y 6)

Código Delphi [-]
uses Nb30, Winsock;

procedure TForm1.Button1Click(Sender: TObject);
  type
   // Una estructura que une el estado del adaptador
   // con una matriz de estructuras TNameBuffer
  ASTAT = record
    adapt: TAdapterStatus;
    NameBuff: Array[0..29] Of TNameBuffer;
  end;
  var
    Adaptador: ASTAT;
    Ncb: TNCB;
    Nombre: String;
    DatosSocket: WSAData;
    BloqueIP: PHostEnt;
    DirIP: in_addr;
begin
  with Ncb Do // Inicializamos la estructura para ejecutar
    begin // el comando NCBSTAT
      ncb_command := char(NCBASTAT);
      ncb_lana_num := char(0); // asumimos que sólo hay un adaptador
      ncb_callname := '*'; // y no facilitamos nombre
      ncb_buffer := @Adaptador; // dirección de la estructura para obtener
      ncb_length := sizeof(Adaptador); // los datos devueltos
    end;

    Netbios(@Ncb); // Llamada a NetBios

    // Mostramos los datos
    with Adaptador.adapt Do
      ShowMessage('La dirección MAC es: ' +
         IntToHex(Integer(adapter_address[0]), 2) +
         IntToHex(Integer(adapter_address[1]), 2) +
         IntToHex(Integer(adapter_address[2]), 2) +
         IntToHex(Integer(adapter_address[3]), 2) +
         IntToHex(Integer(adapter_address[4]), 2) +
         IntToHex(Integer(adapter_address[5]), 2));

    WSAStartup($0101, DatosSocket); // Inicializamos Windows sockets
    SetLength(Nombre, MAX_PATH); // y obtenemos el nombre de nuestro equipo
    gethostname(PChar(Nombre), MAX_PATH);
       // que usamos para obtener un bloque de información sobre IP
    BloqueIP := gethostbyname(PChar(Nombre));
       // del cual recuperamos la dirección
    CopyMemory(@DirIP, (BloqueIP^).h_addr_list^, BloqueIP.h_length);
    ShowMessage(inet_ntoa(DirIP)); // y la mostramos
end;

Para los demás, mira por favor este truco de nuestro amigo seoane
http://www.clubdelphi.com/trucos/index.php?id=372

Creo que con esto, lo tenes resuelto

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita