클라이언트의 최종 아이피 정보

프라우드넷 1.8 C# 버전을 사용하고 있습니다.

클라이언트에서 프라우드넷 서버 접속 시 서버 측이나 클라이언트 측에서 클라이언트의 최종 아이피(외부로 노출된 공인 아이피 IPv4)를 알 수 있는 방법이 있는지 궁금합니다.

프라우드넷 C# 레퍼런스에서는 아래와 같이 Proud.NetClientInfo 를 GetClientInfo API로 얻을 수 있지만, Proud.NetClientInfo 클래스 안에는 원하는 클라이언트 최종 아이피(외부로 노출된 공인 아이피 IPv4) 정보가 들어 있지는 않은 것 같습니다.

Nettention.Proud.NetServer Class Reference

Proud.NetClientInfo GetClientInfo (Proud.HostID hostID)

프라우드넷 1.8 c# 기준으로 아래와 같이 가져올 수 있습니다.

  1. 서버 코드에서 클라이언트 공인 아이피(IPv4) 가져오기
    NetServer.ClientJoinHandler 핸들러에서 NetClientInfo 정보가 내려올 때, clientInfo.tcpAddrFromServer.IPToString() 로 알 수 있습니다.

  2. 클라이언트 코드에서 클라이언트 공인 아이피(IPv4) 가져오기
    NetClient m_client로 서버 연결 후에 아래 코드로 알 수 있습니다.

IPEndPoint publicIPEndPoint = null;

if (m_client.GetPublicAddress(ref publicIPEndPoint))

{

// publicIPEndPoint.Address.ToString()

}
  1. 테스트 환경
    서버는 항상 클라이언트와 다른 네트워크 공간(외부 퍼블릭 아이피를 서버가 사용)에 있어야 합니다. 공유기 하위에 서버, 클라가 같이 있으면, 위 1,2번 처리를 하면, 사설 아이피만 나옵니다.