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.
Question
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 to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.