Álvaro, para lograr esto, puedes utilizar la función
`getpeername()` en tu programa en C para obtener la dirección IP y el puerto remoto al que está conectado el
socket. Luego, puedes utilizar una herramienta como
`netstat` en UNIX para verificar si la dirección IP está conectada al servidor Apache en ese momento.
Aquí hay un ejemplo de cómo podrías implementar esto:
1. Obtén la dirección IP y el puerto remoto utilizando la función
`getpeername()` en tu programa en C. Puedes encontrar ejemplos de cómo hacer esto en la documentación de
sockets de UNIX.
2. Ejecuta el comando
`netstat -an | grep <dirección IP>` en tu programa en C utilizando la función
`system()` para obtener la lista de conexiones activas en el servidor Apache.
3. Analiza la salida del comando
`netstat` para verificar si la dirección IP está presente en la lista de conexiones activas. Si está presente, puedes obtener el nombre de usuario correspondiente utilizando el comando
`who` o
`w` en UNIX.
Aquí hay un ejemplo de cómo podrías implementar esto en tu programa en C:
Recuerda que este es solo un ejemplo básico y deberás adaptarlo a tus necesidades específicas. Además, ten en cuenta que el acceso a la información del servidor Apache puede requerir permisos de administrador.