Hola.
Por tu pregunta deduzco que tienes el código de un servidor y que, cuando aceptas una conexión, quieres saber desde qué dirección IP viene y qué puerto.
Si te fijas, la sintaxis de 
accept (para aceptar conexiones entrantes por TCP) es:
-   
- int accept(int s, struct sockaddr *sa, int *addrlen); 
-   
-   
-   
Para aceptar una conexión se haría así:
-   
- struct sockaddr_in sa; 
- int size_sa = sizeof(sa); 
- int cliente = accept(mi_socket_tcp, (struct sockaddr *) &sa, &size_sa); 
-   
-   
-   
Después de esto, en 
cliente tendrías el descriptor de la conexión que acabas de hacer y en 
sa tendrías la dirección IP y el puerto de donde proviene.
Para obtener los valores del struct, que estarán en el formato de la red, se hace así:
-   
- // Retorna la dirección IP en formato de cadena 
- char *inet_ntoa(sa.sin_addr); 
-   
- // Retorna el puerto con los bytes bien ordenados 
- unsigned short ntohs(sa.sin_port); 
-   
-   
-   
Espero que te haya servido de ayuda.
Un saludo.
Ruben3d