Veja o IP real através do proxy HTTP

Veja o IP real através do proxy HTTP

Estou configurando um proxy HTTP em um aplicativo Java. Nesse aplicativo eu testo se o proxy está funcionando consultandohttp://api.ipify.org/. No entanto, recebo meu endereço IP real de volta em vez do endereço do proxy. Verifiquei com o Wireshark, meu computador envia a solicitação http para o proxy que então retorna meu endereço IP real para mim. Eu queria saber como isso é possível. Também gostaria de saber se existe uma maneira de verificar esse comportamento sem consultar a API. Obrigado!

Responder1

Como você descobriu, há um cabeçalho sendo enviado chamado:X-encaminhado para, que contém seu IP original.

Pode ser possível remover esse cabeçalho de solicitação ou personalizá-lo; se você estiver tentando removê-lo, ele poderá ser adicionado pelo proxy, não importa o que aconteça e fora de suas mãos. Aqui está um artigo interessante que pode ajudar se você ainda não o viu.Solicitações HTTP de Java, adicione informações de cabeçalho e proxy. Outra opção pode ser procurar um provedor de proxy diferente.

Para um método alternativo para verificar se o proxy está funcionando, você deve poder usar: InetAddress.isReachable(), você pode verificar se há uma resposta de qualquer site como Google.com ou de um servidor personalizado que você tenha na Internet. A menos que esteja tentando verificar o IP do proxy, você ainda pode configurar seu próprio servidor de verificação, mesmo que seja um host gratuito. InetAddress.isReachable pode ter algumas desvantagens, conforme mencionado aqui:O método "isReachable" não valeu a pena ser usado para mim em muitos casos.

Este parece ser o mais relevante para sua pergunta:Como verificar se o proxy está funcionando em Java?Também imagino que você esteja tentando fazer algo semelhante, como verificar uma lista de proxy, em vez de usar um serviço pago. Depende se o software é só para você ou se será lançado e compartilhado. Se for só você, pode valer a pena comprar um proxy que lhe proporcione anonimato.

Responder2

Acho que acabei de descobrir o que aconteceu aqui. O proxy parece usar o sinalizador HTTP X-Forwarded-For. Verhttp://en.wikipedia.org/wiki/X-Forwarded-For. Então, acho que a única maneira de ter certeza é consultar a API e ver o que é retornado.

informação relacionada