Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos.
Bom galera eu gostaria de saber como que eu faço para se conectar em meu servidor usando cURL + Proxy.
Somente com cURL eu consigo me logar sem nenhum problema, mais eu gostaria de me logar com Proxy e dessa forma fazer com que apareça apenas o IP do servidor.
Somente com cURL uso o seguinte código abaixo:
// Inicia o cURL
$ch = curl_init();
// Define a URL original (do formulário de login)
curl_setopt($ch, CURLOPT_URL, 'http://www.meusite.com.br/login.php');
// Cookie Session
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
// Habilita o protocolo POST
curl_setopt ($ch, CURLOPT_POST, 1);
// Define os parâmetros que serão enviados (usuário e senha por exemplo)
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'email='.$login.'&senha='.$passwd.'');
// Imita o comportamento padrão dos navegadores: manipular cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
// Define o tipo de transferência (Padrão: 1)
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
//tempo limite de conexao
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
// Executa a requisição
$store = curl_exec ($ch);
// Define uma nova URL para ser chamada (após o login)
curl_setopt($ch, CURLOPT_URL, "www.meusite.com.br/adm.php");
// Executa a segunda requisição
$content = curl_exec ($ch);
// Finaliza Curl
curl_close($ch);
Como que eu faria para adaptar esse código e me conectar via proxy ?!
Desde de já obrigado pela ajuda de todos.
Olá hunternh, caso isso faça o seguinte abaixo é.
Por exemplo:
Meu servidor proxy tem IP 11.22.333.444:8080
Então independente do local que eu acesse queria saber se na hora de fazer autenticação o meu IP para o servidor iria aparecer 11.22.333.444:8080 e não o IP de onde eu estivesse acessando.
Essas linhas de comando fazem isso ?!
Desde de já obrigado pela ajuda.
Nunca fiz esse teste do ip, mas esse comandos são para você conectar ao proxy pelo qual as requisições vão passar e provavelmente o local que você estaria acessando receberia o ip do proxy.
Essas linhas de comando fazem isso ?!
Faça testes, e veja se isso aconteçe :).
Fiz e realmente não funcionou, deixei da seguinte forma abaixo.
// Inicia o cURL
$ch = curl_init();
// Define a URL original (do formulário de login)
curl_setopt($ch, CURLOPT_URL, 'http://www.meusite.com.br/login.php');
// Cookie Session
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
// Habilita o protocolo POST
curl_setopt ($ch, CURLOPT_POST, 1);
// Define os parâmetros que serão enviados (usuário e senha por exemplo)
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'email='.$login.'&senha='.$passwd.'');
// Imita o comportamento padrão dos navegadores: manipular cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
// Define o tipo de transferência (Padrão: 1)
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
//tempo limite de conexao
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, '111.222.333.444:80');
// Executa a requisição
$store = curl_exec ($ch);
// Define uma nova URL para ser chamada (após o login)
curl_setopt($ch, CURLOPT_URL, "www.meusite.com.br/adm.php");
// Executa a segunda requisição
$content = curl_exec ($ch);
// Finaliza Curl
curl_close($ch);
Como que eu devo fazer André D. Molin para que funcione do maneira que eu quero ?!
Desde de já obrigado pela ajuda de todos.
Tentei fazer deixando da seguinte forma abaixo e também não deu certo
$ch = curl_init();
// Cookie Session
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=1&redir=1&username=".$login."&password=".$passwd."");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, "109.109.243.186:80");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 1);
$out = curl_exec($ch);
Que que tem de ERRADO aí que não consigo ver ?! Desde de já obrigado pela ajuda de todos, até mais.
Cara não trabalho na área, mas sei que dá certo assim.
Coloquei a URL para você que vai extrair o IP do proxy, e não o da sua máquina.
<?php
echo "estou aqui!";
// Inicia o cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, "119.145.130.201");
curl_setopt($ch, CURLOPT_PROXYPORT, "80");
// Define a URL original (do formulário de login)
curl_setopt($ch, CURLOPT_URL, 'http://www.monip.org');
// Executa a requisição
$store = curl_exec ($ch);
// Finaliza Curl
curl_close($ch);
//by: Rogerio Soares
?>
Seria isso que você queira?