Obtener el IP en Windows Server 2016
Hola,
Hay una funcion como esta para obtener el IP: function ObtenerIp :string; //Es el truco 82 de trucomania (editado) var wVersionRequested : WORD; wsaData : TWSAData; p : PHostEnt; s : array[0..128] of char; begin wVersionRequested := MAKEWORD(1, 1); WSAStartup(wVersionRequested, wsaData); GetHostName(@s, 128); p := GetHostByName(@s); Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^); WSACleanUP; end; En todos los Windows funciona bien, pero ya en Windows Server 2016 Ya no funciona se genera un excepcion de error. Alguien ya lo soluciono??? |
Hola...
¿Podrías especificar cual es el error que te muestra? Por que así como preguntas, pues como que no das mucha información. Saludos... |
Cita:
Gracias :) |
Yo utilizo esa funcion en Windows 2016 Server y funciona correctamente.
Deberás decirnos qué excepción genera para tí. (Mensaje completo y sin traducir) |
Cita:
La version que tengo es: Version 1607 (Compilacion de SO 14393.0) (En español) |
Cita:
|
Cita:
Este es el Error que me marca, usando Delphi 7 / Sobre Windows Server 2016 Version 1607 (Compilacion de SO 14393.0) Access violation at address 004764C1 in module 'Project1.exe'. Read of address 0000000C CODIGO:
|
Veo que es de aquí.
Yo uso lo mismo con una pequeña variación y funciona perfectamente:
|
Cita:
Por ese motivo, yo creo que debe ser un problema en el Build del Windows Server... ya que cuando lo ejecuto en Windows 7, 10 o 2012 Server funciona muy bien... |
A ver si alguien lo prueba con la misma versión que tienes tú.
|
Prueba con esta versión:
Notarás que hay una variable mas "P2" de tipo PChar. Quizas la asignación directa del resultado de inet_ntoa que es PChar a String no le gusta.
Estuve leyendo que inet_ntoa devuelve null si ha encontrado un error. Cita:
|
Cita:
Le agregue a tu funcion el Mensaje de Excepcion para saber si aun continua y desafortunadamente la Excepcion persiste. |
Confirmado, Instale Windows Server 2016 Version 1607 (Compilacion de SO 14393.0)
Usando el ISO, sin aplicar ninguna actualizacion de Windows y el Error se presenta al obtener el IP, y ademas de eso muchos otros errores con los componentes de Delphi. Procedi a Actualizar Windows (KB4035631) Y con esta actualizacion ya funcionan todas las Funciones anteriores... Como lo habia dicho, la Instalacion por default de Windows tiene errores que han sido corregidos por Micro$oft. Saludos,. |
Justo lo que necesitaba! Gracias!
|
La franja horaria es GMT +2. Ahora son las 03:04:32. |
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