PDA

Ver la Versión Completa : Consultar configuracion IP


mcsebas
02-05-2008, 02:39:21
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 (http://www.paranoia.clara.net/software/index.html).

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
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)


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 (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.