Ir para conteúdo
Fórum Script Brasil
  • 0

IP local / IP do servidor


AHTOH

Pergunta

Estou usando um script PHP pra fazer login em um site. Este site gera um código de segurança que muda cada vez que se faz login com um IP diferente.

O problema é o seguinte: ao usar o script, o site gera um código baseado no IP do servidor onde está o meu script, e não no IP do computador que está executando o script.

Existe um jeito de passar o IP local?

Pesquisando na net eu descobri que existe um header (X-Forwarded-For) usado por servidores proxy para repassar o IP local, mas mesmo assim não funcionou.

O script que estou usando faz o login simulando um GET request (listado abaixo):

function sendRequest($url) {
        $ip=$_SERVER['REMOTE_ADDR'];
        # echo '<'.$ip.'>'; <= Ao habilitar esta linha, conferi que o script mostrou o meu IP local

        # try to connect to host
        $fp = fsockopen(BASE_URL, 80, $errno, $errstr, 30);
        if (! $fp) {
            return array('err' => 'NO_CONNECTION');
        }

        # generate request
        $request = "GET $url HTTP/1.1\r\n" .
            "Host: " . BASE_URL . "\r\n" .
            "User-Agent: Mozilla/5.0 (PCH & XTR plugin by consros)\r\n".
            "Accept: application/json, text/javascript, */*\r\n".
            "Content-Type: application/x-www-form-urlencoded\r\n".
            "Connection: close\r\n".
            "X-Requested-With: XMLHttpRequest\r\n\r\n".
            "X-Forwarded-For: $ip";
        $this->trace("===>$request\n\n");

        # send request and read response
        fwrite($fp, $request);
        $response = "";
        while (! feof($fp)) {
            $response .= fgets($fp, 1024);
        }
        fclose($fp);

        $this->trace("<===$response\n\n");

        # cut json object
        $response = substr($response, strpos($response, '{'));
        $response = substr($response, 0, strrpos($response, '}') + 1);

        # correct some weired response corruption coming with channels list
        $response = preg_replace('|\r\n[A-Za-z0-9]{1,4}\r\n|', '', $response);

        # exclude any new lines
        $response = str_replace(array("\r", "\n"), '', $response);

        $params = json_decode($response, true);
        return null != $params ? $params : array('err' => 'JSON_ERROR_SYNTAX');
    }

Eu sou completamente iniciante em php. Gostaria de saber se existe um jeito de abrir uma página, e enviar para ela o IP local, e não o IP do servidor onde está hospedado o script. O script que estou usando só funciona normal se executado no computador.

Obrigado a quem puder ajudar

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...