Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Consultar configuracion IP (https://www.clubdelphi.com/foros/showthread.php?t=55938)

mcsebas 02-05-2008 02:39:21

Consultar configuracion IP
 
Hola quisiera que me ayuden con el siguiente problemilla que tengo:

Resulta que quiero hacer un programita que me permita obtener lo siguiente:

1)Direccion IP de la LAN
2)Direccion IP de Internet con sus DNS
3)Puerta de enlace
4)Servidor DHCP y DNS
5)Nombre del Host
6)Mac Address y Fabricante de la placa de red
7)Mascara de subred

Perdon si pido mucho pero es lo que necesito, pero me imagino que se debe hacer mediante el API de windows.

Gracias

enecumene 02-05-2008 15:05:14

Hola, puedes utilizar el componente IPConfig Classes V1.1 y lo puedes encontrar en esta web.

Saludos.

mcsebas 02-05-2008 16:35:09

Gracias pero me gustaría hacerlo mediante el API de windows ¿esto se puede?

Gracias

enecumene 02-05-2008 16:37:51

Cita:

Empezado por mcsebas (Mensaje 283857)
Gracias pero me gustaría hacerlo mediante el API de windows ¿esto se puede?

Gracias

¡Claro que se puede!, el componente que te remito hace uso de las API de windows. ;).

Saludos.

mcsebas 03-05-2008 06:33:03

Seguro que si pero más llamadas a el API debería hacer, es que deseo hacerlo sin componentes de tercero es que quiero meter manos en la masa jajajajajaja

Gracias porque me estas ayudando

MaMu 03-05-2008 07:01:22

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

mcsebas 05-05-2008 07:15:27

Gracias por responder a mi duda con esto ya tengo para rato metiendo mano.
Gracias pero muchas gracias

seoane 05-05-2008 20:35:48

Hola,

Truco 372 - > http://www.clubdelphi.com/trucos/index.php?id=372

sur-se 29-05-2008 09:56:21

Hola. Estoy interesado también en obtener esta información. Con los ejemplos que habeis puesto se obtienen todos los datos excepto el que me interesa que es la dirección ip de internet, es decir, la IP pública de internet. Esta dirección se obtiene por ejemplo con la página web
la cual te dice "Tu ip real es ...".
Con los trucos y fuentes puestos no consigo obtener dicha información.
¿Como se podría hacer?
Un saludo.


La franja horaria es GMT +2. Ahora son las 22:14:02.

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