How do I get my server to find out the client's address / host-
How do I get my server to find out the client's address / host-
From Andrew Gierth (andrew@erlenstar.demon.co.uk): After accept()ing a connection, use getpeername() to get the address of the client. The client's address is of course, also returned on the accept(), but it is essential to initialise the address-length parameter before the accept call for this will work. Jari Kokko (jkokko@cc.hut.fi) has offered the following code to determine the client address: int t; int len; struct sockaddr_in sin; struct hostent *host; len = sizeof sin; if (getpeername(t, (struct sockaddr *) &sin, &len) < 0) perror("getpeername"); else { if ((host = gethostbyaddr((char *) &sin.sin_addr, sizeof sin.sin_addr, AF_INET)) == NULL) perror("gethostbyaddr"); else printf("remote host is '%s'\n", host->h_name); }

Recent comments