Sockets: sin_addr einem char buffer zuweisen

desperate00

Grünschnabel
Hallo!

Ich suche gerade nach einer Möglichkeit, die Client-IP nach dem Empfang bei accept() in meinem Server-Porgramm einem char buffer zu zuweisen um diese später in eine File zu schreiben.
Leider habe ich noch keine Möglichkeit gefunden, bin deshalb für Anregungen und Vorschläge offen!

Vielen Dank im vorraus! :)
 
Hallo,

versuchs doch mal so:
C:
int main()
{
  struct sockaddr_in client_addr;
  int sd, cd;
  int csize;
  char ip[16];
  ...
  csize=sizeof(client_addr)

  if ((cd = accept(sd, (struct sockaddr *)&client_addr, &csize) < 0) {
    fprintf(stderr, "Error in accept\n");
    return 1;
  }
  sprintf(ip, "%d.%d.%d.%d",
             (ntohl(client_addr.sin_addr.s_addr) >> 24) & 0xff,
             (ntohl(client_addr.sin_addr.s_addr) >> 16) & 0xff,
             (ntohl(client_addr.sin_addr.s_addr) >> 8) & 0xff,
             ntohl(client_addr.sin_addr.s_addr) & 0xff);
  printf("%s connected!\n", ip);
  ...
  return 0;
}

Gruß,
RedWing
 
Zurück