Cómo obtener direcciones de red
Todos los adaptadores de red Ethernet, que es el tipo más habitual, cuentan con una dirección única conocida como MAC, así como con una dirección IP en caso de que forme parte de una red TCP/IP. Estos datos pueden ser necesarios y útiles en diversos casos, tanto para identificar al equipo de forma única, con la dirección MAC, como para saber la subred TCP/IP de que forma parte el equipo y encontrar a su servidor.
La función NetBios(), cuyo prototipo y estructuras asociadas se encuentran en el módulo Nb30 de Delphi, permite ejecutar diferentes comandos de servicios de red, entre ellos uno llamado NCBASTAT que sirve para obtener distinta información acerca del estado y configuración de los adaptadores.
Para poder recuperar la dirección MAC, que es lo que interesa, básicamente hay que preparar una estructura TNcb, con los parámetros apropiados, y a continuación llamar a NetBios() para obtener la información. En este caso habría que facilitar el número de adaptador, un nombre y la dirección y longitud de un bloque de memoria en el que se devolverá el resultado. Tras la llamada, el miembro adapter_address, que es una matriz de seis elementos, contendrá los bytes que identifican a la tarjeta.
Para obtener la dirección IP propia, lo más fácil es usar las funcionesWindows sockets . Básicamente se llama a gethostname(), para obtener el nombre de nuestro ordenador, y a continuación a gethostbyname(), que devuelve una estructura de datos en las que están contenidas las direcciones IP. Para convertir esas direcciones, que están almacenadas en cuatro bytes, en una cadena, lo más simple es usar la función inet_ntoa(). Todas estas funciones están documentadas en la API de Windows.
Puede ver un ejemplo colocando un botón en un formulario e incluyendo el código del Listado 1. Al pulsar el botón se obtiene y muestra tanto la dirección MAC como la IP. Para mantener la simplicidad tan sólo se obtiene la primera dirección de cada tipo, pero bastaría un bucle para recuperar otras que pudieran existir en caso de que el sistema contase con varios adaptadores.
**************************** OJO LISTADO **************************
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;
Mensaje: String;
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
Mensaje := ‘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) + #13#10;
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);
Mensaje := Mensaje + ‘Direccion IP: ‘ + inet_ntoa(DirIP); // y la mostramos
ShowMessage(Mensaje);
end;
Listado 1. Código Delphi para recuperar las direcciones MAC e IP de un ordenador
Graciassssss
no e entendido nada de lo q pone
style=»margin-left:0.5em;»>
a href =»/gp/help/customer/display.html/ref=cm_rn_bdg_help/179-1991913-9135113?ie=UTF8&nodeId=14279681&pop-up=1#RN»target =» AmazonHelp «onclick =» amz_js_PopWin retorno (this.href, width ‘AmazonHelp’, ‘= 340, altura = 340, de tamaño variable = 1, scrollbars = 1, toolbar = 1, estado = 1 img src =’);»><"http://g-ecx.images-amazon.com/images/G/01/x-locale/communities/ reputation/c7y_badge_rn_1._V192249968_.gif "width =" 70 "align =" absmiddle "alt =" (nombre real) "title =" 15 "border =" 0 "/>
class=»tiny»
class=»tiny»
Como diseñador de página web y especialista en SEO Puedo reservar preorden Mike Monahan cada año porque es la más actualizada sobre todos los cambios en el algoritmo de búsqueda. Y sin excepción conseguir este libro de inmediato me ha ayudado a responder a la pregunta que tenía acerca de por qué algunos de mis sitios web a los clientes son rápidamente la caída de los motores de búsqueda como moscas a pesar de que se optimizan. Por lo menos optimizado para las reglas últimos años y la última no. Puedo encontrar el valor de la información en este libro una y mil veces el costo del libro. Me gusta mantenerse al día sobre los últimos consejos de SEO y estrategias
En cuanto a aquellos que son nuevos para SEO, este libro se centra en la creación de sitios web fáciles de encontrar que no son optimizados para los motores de búsqueda, pero son de acceso, utilización y valor informativo de contenido, pertinente, antes que nada. Hay un montón de trucos y consejos para las personas que les gusta y también ideas sobre cómo utilizar Google Analytics. Así que no se sentirán decepcionados. Creo que esto de pie libro en marcado contraste con la mayoría de «SEO» libros. Este libro indica claramente lo que se necesita para construir y optimizar sitios web fáciles de encontrar sin recurrir a trucos de jerga o de marketing.
Dios los bendiga.
>