2012-03-13 3 views
0

2 개의 연결된 SocketChannels를 비교하여 동일한 컴퓨터에서 왔는지 확인할 수 있습니까? 두 연결을 일치시켜야하는 Java 프로그램이 있습니다. IP를 비교해도 IP를 비교해도 동일한 시스템의 연결인지 여부를 알 수 없기 때문에 IP로 일치하는 것은 충분히 신뢰할 수 없습니다.2 개의 SocketChannel이 같은 컴퓨터에 있는지 어떻게 구별합니까?

나는 답을 찾고 있었지만 아무 것도 찾지 못했습니다.

감사합니다.

+0

IP로 일치하는 이유가 정확하지 않은 이유는 무엇입니까? –

+0

IP가 동일한 기계의 연결인지 여부를 알 수 없기 때문에 신뢰할 수 없음을 의미합니다. – user1265395

+0

@ user1265395 물론 NAT 장비 뒤에있는 컴퓨터를 언급하지 않는 한 아무 것도 할 수 없습니다. – EJP

답변

0

사용 getInetAddress(). 소켓에 getHostName의()과 고유 있는지뿐만 아니라 확인 IP 주소 (충분히 신뢰할 수있는 예를 들어 있기 때문에이 없습 또는 프록시의하지 않은 경우 IP 주소는

+0

IP 주소가 같지 않은 경우 어떻게해야합니까? 하나는 프록시를 사용하고 다른 하나는 사용하지 않는 2 개의 브라우저 (파이어 폭스와 크롬) 사용을 고려하십시오. –

+0

사실이 프록시에 대해 작동하지 않지만 클라이언트가 실제로 자체 MAC 주소 또는 뭔가 보내지 않는 한 모든 솔루션을 서버 관점에서 수 있을지 모르겠다. – ghostbust555

0

고유 한 경우) 그러면 당신은 붙어 있습니다.

공유 암호를 기반으로 무언가를 구현하는 것을 고려해 볼 수 있습니다. 예 : 공용/개인 키 또는 SSL 인증서를 사용합니다. 그러나 다른 컴퓨터의 소유자를 신뢰하여 비밀로 유지하고 여러 컴퓨터에 설치하지 않는 것으로 가정합니다.

관련 문제