Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Electric Ladyland

[Resolvido] Acesso bloqueado Curl

Recommended Posts

Olá pessoal do Imasters,

Estou com um problemão, desenvolvi um script para envio de alertas por e-mail, o script acessa um determinado endereço web através do curl, executa 2 REGEX para verificar se há alguma notícia atual (funcao date e preg_match_all).

A questão é a seguinte, eu tenho certeza absoluta que o código está correto (já executei ele localmente e ele roda que é uma maravilha), porém, o que acontece, após algumas semanas rodando fui relatado que o script não funciona mais, quando fui verificar com um die(curl_error($ch)) pude perceber que o curl não conseguia se conectar com o host, configurei então um proxy para o curl e ele voltou a funcionar, alguns dias depois fui relatado do problema novamente, pensei que o proxy havia caído, porém, testei o mesmo e ele está funcionando, acessei listas públicas de proxy adicionei novos proxys e nada do script voltar a funcionar, o curl fica falando que não foi possível se conectar com o host: "couldn't connect to host".

Tentei tudo o que eu sabia para fazer esse danado conectar e nada, alguém sabe me dizer o que fazer para conseguir acessar o site? Será que estou configurando o proxy errado, eles bloquearam o endereço do meu servidor por debaixo do proxy? Isso é possível?

PS.: As informações que eu quero acessar através deste script são PÚBLICAS e de acesso LIVRE para qualquer pessoa, não requer cadastro, não requer nada, é informação livre na web. O acesso é feito por CronJob configurada no cpanel para rodar de 4 em 4 horas todos os dias.

Segue a configuração do Curl:

//inicializa o curl
$ch=curl_init() or die("erro ao iniciar!");
//define o endereço a ser trabalhado
curl_setopt($ch, CURLOPT_URL, "http://blablabla.com/blabla.php");
//ligando o proxy :D
curl_setopt($ch, CURLOPT_PROXY, '187.75.157.193');
curl_setopt($ch, CURLOPT_PROXYPORT, "3128");
//indica que o valor encontrado no endereço deverá retornar para uma variável
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$pagina=curl_exec($ch) or die ("Erro ao retornar o exec. ~ ".curl_error($ch));
//...
//fecha a conexão com o curl
curl_close($ch);

Desde já muito obrigado, já não sei mais o que fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo indica que esse site que você usa com cURL não é seu, então, nesse caso, você tecnicamente está "roubando" informações e/ou banda desse site.

 

Se não for o caso, nem seria preciso me desculpar, afinal, se o que não se aplica não ofende. :thumbsup:

 

E sendo positiva a primeira hipótese, de repente os administradores desse site perceberam um aumento, significativo ou não, no consumo dos recursos e, seja por iniciativa própria ou por aviso do servidor, revisaram o próprio sistema e tentaram criar algumas barreiras adicionais.

 

Feliz ou infelizmente, a Biblioteca cURL tem dezenas de opções muitas delas capazes de contornar essas limitações.

 

Algumas interessantes para o caso seriam a que modifica o REFERER, o USER AGENT, o TIMEOUT e etc.

 

Mas lembre-se que roubo cibernético é crime previsto em Lei, então, cuidado. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo indica que esse site que você usa com cURL não é seu, então, nesse caso, você tecnicamente está "roubando" informações e/ou banda desse site.

 

Se não for o caso, nem seria preciso me desculpar, afinal, se o que não se aplica não ofende. :thumbsup:

 

E sendo positiva a primeira hipótese, de repente os administradores desse site perceberam um aumento, significativo ou não, no consumo dos recursos e, seja por iniciativa própria ou por aviso do servidor, revisaram o próprio sistema e tentaram criar algumas barreiras adicionais.

 

Feliz ou infelizmente, a Biblioteca cURL tem dezenas de opções muitas delas capazes de contornar essas limitações.

 

Algumas interessantes para o caso seriam a que modifica o REFERER, o USER AGENT, o TIMEOUT e etc.

 

Mas lembre-se que roubo cibernético é crime previsto em Lei, então, cuidado. ;)

Não é o caso :) Não estou me apropriando de informação/banda aleia, pode ficar sossegado.

 

Hinom, funcionou pela função file_get_contents(), nem acreditei, já conhecia a função mas havia deixado-a de lado graças ao Curl (que possui muito mais funções e é mais rápido.

Bom, verifiquei também o post que você citou e ele me ajudou bastante, ainda há muita coisa que eu não sei sobre o Curl, é uma biblioteca realmente incrível. Estudando os códigos do post pude descobrir o que várias "CURLOPT" fazem e me baseando na resposta do Bruno Augusto e no que foi dito no post o código agora funciona e ficou assim.

$opt=array(
CURLOPT_URL=>"http://ligahq.com.br/lance.php",
CURLOPT_RETURNTRANSFER=> true,
CURLOPT_HEADER => true,
   CURLOPT_REFERER => 'http://' . $_SERVER['SERVER_NAME'],
   CURLOPT_USERAGENT => 'Mozilla/5.0 Windows NT 6.1 WOW64 rv 8.0 Gecko/20100101 Firefox/8.0',
);
curl_setopt_array($ch, $opt);

Muito obrigado por toda a ajuda prestada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.