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.
Pergunta
AHTOH
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):
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.