#ifndef WIN32
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif

#include <string>

#include <winport.h>
#include <getpeer.h>

void getpeer(std::string &peer)
 {
  #ifndef WIN32
  struct sockaddr_in sin;
  socklen_t sval;

  sval=sizeof(sin);
  if(getpeername(0, (struct sockaddr *)&sin, &sval)<0)
   {
    peer="(unknown)";
    return;
   }

  peer=inet_ntoa(sin.sin_addr);
  #else
  peer="unknown";
  #endif
 }



syntax highlighted by Code2HTML, v. 0.9.1