본문 바로가기

C/C++/[C] 소켓통신

[TCP/IP 소켓통신] 접속한 클라이언트 IP 확인.

반응형

접속한 클라이언트의 IP 확인 방법.

 

클라이언트가 서버에게 커넥트 하고,

서버에서 접속을 요청한 클라이언트를 어셉트 해줄때,

서버는 클라이언트의 정보를 받게 되는데,

이때 접속을 요청한 클라이언트의 IP 확인이 가능하다.

 

struct sockaddr_in addr;

 

위와같이 소켓 구조체의 변수를 addr 로 선언 했다고 가정하고,

 

커넥트가 들어왔을때

 

서버는 어셉트를 해준다.

 

newFd = accept(fd, (struct sockaddr *)&addr, &addrLen);

 

이때,

inet_ntop(AF_INET, &addr.sin_addr, ip(ip를 담을 char 배열), INET_ADDRSTRLEN);

 

위 함수를 통해 클라이언트의 IP 를 받아올수가 있다.


두종류 이상의 클라이언트로부터 접속을 받게 되면, 이부분을 활용해

클라이언트의 IP로 어떤 클라이언트인지 구분도 가능하고,

원하지 않는 클라이언트의 접속도 차단할수 있고,

 

아주 아주 유용하다.


반응형