HTTP 프록시를 통해 실제 IP 보기

HTTP 프록시를 통해 실제 IP 보기

Java 애플리케이션에서 HTTP 프록시를 설정하고 있습니다. 해당 응용 프로그램에서 쿼리를 통해 프록시가 작동하는지 테스트합니다.http://api.ipify.org/. 그러나 프록시 주소 대신 실제 IP 주소를 다시 얻습니다. Wireshark로 확인한 결과 내 컴퓨터는 http 요청을 프록시로 보낸 다음 내 실제 IP 주소를 나에게 반환합니다. 어떻게 그게 가능한지 궁금했어요. 또한 API를 쿼리하지 않고 이 동작을 확인할 수 있는 방법이 있는지 알고 싶습니다. 감사합니다!

답변1

아시다시피 다음과 같은 헤더가 전송되고 있습니다.X-전달-For, 원본 IP가 포함되어 있습니다.

해당 요청 헤더를 제거하거나 사용자 정의하는 것이 가능할 수 있습니다. 이를 제거하려고 하면 무슨 일이 있어도 프록시에 의해 사용자의 손에서 벗어날 수 있습니다. 아직 보지 못한 경우 도움이 될 수 있는 흥미로운 기사를 소개합니다.Java의 HTTP 요청, 헤더 및 프록시 정보 추가. 또 다른 옵션은 다른 프록시 공급자를 조사하는 것입니다.

프록시가 작동하는지 확인하는 대체 방법으로 InetAddress.isReachable()을 사용할 수 있으며 Google.com과 같은 웹사이트나 인터넷에 있는 사용자 정의 서버에서 응답을 확인할 수 있습니다. 프록시 IP를 확인하려는 것이 아니라면 무료 호스트라도 자체 확인 서버를 설정할 수 있습니다. InetAddress.isReachable에는 여기에 언급된 대로 몇 가지 단점이 있을 수 있습니다."isReachable" 메소드는 많은 경우에 나에게 사용할 가치가 없었습니다.

귀하의 질문과 가장 관련성이 높은 것 같습니다.프록시가 Java에서 작동하는지 확인하는 방법은 무엇입니까?또한 유료 서비스를 이용하기보다는 프록시 목록을 확인하는 것과 같은 유사한 작업을 수행하려고 한다고 상상해 봅니다. 소프트웨어가 귀하만을 위한 것인지, 아니면 출시 및 공유될 것인지에 따라 다릅니다. 귀하만이라면 익명성을 제공하는 프록시를 구입하는 것이 가치가 있을 수 있습니다.

답변2

여기서 무슨 일이 일어났는지 방금 알아낸 것 같아요. 프록시가 X-Forwarded-For HTTP 플래그를 사용하는 것 같습니다. 보다http://en.wikipedia.org/wiki/X-Forwarded-For. 따라서 실제로 확인하는 유일한 방법은 API를 쿼리하고 반환된 내용을 확인하는 것입니다.

관련 정보