나는 양방향 SSL 클라이언트와 서버를 java로 작성했습니다. 문제는 서버가 클라이언트의 호스트 이름을 찾을 수 있어야하고 해당 클라이언트가 NAT 게이트웨이 또는 프록시 뒤에 있다는 것입니다. 나는 시도했다 :. clientSocket.getRemoteSocketAddress(), clientSocket.getInetAddress을()에는 getCanonicalHostName(), clientSocket.getInetAddress() getHostAddress(),자바를 사용하여 NAT 게이트웨이 또는 프록시 뒤에있는 SSL 클라이언트의 호스트 이름 얻기
clientSocket이 유형의 SSLSocket이며 그들 중 누구도 작동하지 않습니다 이에, 그들은. 그냥 나에게 공용 IP 주소를 알려줘. 서버에 연결되어있는 클라이언트의 실제 호스트 이름을 얻을 수있는 방법이 있습니까?
응용 프로그램 계층 프로토콜의 소유권이있는 경우 원형 교차 솔루션이 있습니다. 엔드 포인트 주소는 서버와 클라이언트 사이의 응용 프로그램 계층 핸드 셰이크의 일부로 정보 헤더로 전송 될 수 있습니다. 이것은 분명히 당신이 서버/클라이언트의 개발자가되는 것에 달려 있습니다. 이 개념의 좋은 예는 HTTP입니다. 요청 헤더는'X-Forwarded-For'입니다. 이것은 최종 클라이언트 ('X-Forwarded-For : client1, proxy1, proxy2 '형식의 데이터 기타.). – Samveen