10 Ağustos 2017 Perşembe

getsockname metodu

Giriş
Socketin kullandığı yerel ip adresini döner. Şöyle yaparız.
struct      sockaddr_in addr;
socklen_t   addrLen = sizeof(addr);
if(getsockname(fd, (struct sockaddr*) &addr, &addrLen) == -1)
{
  string errStr = strerror(errno);
  return RETURN_FAILURE;
}
Bu noktadan sonra addr yapısında elimizdeki socketin ipv4 adresi bulunur. Bu yapıyı inet_ntop() çağrısına verip string'e çevirebiliriz. Şöyle yaparız.
char        bufferIp[INET_ADDRSTRLEN];

if(inet_ntop(AF_INET, &addr.sin_addr, bufferIp, INET_ADDRSTRLEN) == NULL)
{
  string errStr = strerror(errno);
  return RETURN_FAILURE;
}
string ip (bufferIp);

Hiç yorum yok:

Yorum Gönder