Foros del Web » Programando para Internet » PHP »

Uso de CURL para autentificarse en servidor ISS

Estas en el tema de Uso de CURL para autentificarse en servidor ISS en el foro de PHP en Foros del Web. Hola [email protected], disculpen que los moleste, tengo el siguiente problema. necesito extraer el contenido de una pagina web que tiene un formulario de autentificacion ISS. ...
  #1 (permalink)  
Antiguo 19/04/2011, 22:13
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 9 años, 10 meses
Puntos: 3
Uso de CURL para autentificarse en servidor ISS

Hola [email protected], disculpen que los moleste, tengo el siguiente problema. necesito extraer el contenido de una pagina web que tiene un formulario de autentificacion ISS. Estoy tratando de usar CURL, pero no lo consigo. Mi codigo es
Código PHP:
$curl curl_init();
$user 'miusuario';
$password 'mipasword';
// URL
$url "http://xxx.it-mate.co.uk";
curl_setopt($curl,CURLOPT_URL$url);
curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/4.0");
curl_setopt($curl,CURLOPT_RETURNTRANSFERtrue);
curl_setopt($curl,CURLOPT_HEADERfalse);
curl_setopt($curl,CURLOPT_USERPWD,$user ":" $password);
curl_setopt($curl,CURLOPT_FOLLOWLOCATIONtrue);
$result curl_exec($curl);
$error curl_error($curl);
if(empty(
$error))
{
echo 
$result;
}
else 
{
$return "Error";
$message curl_error();
}
curl_close($curl); 
Alguien que me pueda dar una ayuda

salu2.

Última edición por jpinedo; 20/04/2011 a las 20:00 Razón: a pedido del autor
  #2 (permalink)  
Antiguo 20/04/2011, 10:31
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: Uso de CURL para autentificarse en servidor ISS

intente con esto, pero tampoco me funciona
Código PHP:
$options = array('http' => array( 'header' => 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; es-CL; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 Authorization: Basic' PHP_EOL ) ); 
$context stream_context_create($options);
$text file_get_contents('http://miusuario:[email protected]/?p=view&pg=2'false$context);
echo 
$text
please, alguien que tenga alguna idea como hacerlo.

Última edición por jpinedo; 20/04/2011 a las 20:01 Razón: a pedido del usuario
  #3 (permalink)  
Antiguo 20/04/2011, 10:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.728
Antigüedad: 9 años, 6 meses
Puntos: 1512
Respuesta: Uso de CURL para autentificarse en servidor ISS

Verifica el área que contiene los aportes un tema que habla sobre cURL y como enviar las cabeceras.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 20/04/2011, 11:24
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: Uso de CURL para autentificarse en servidor ISS

Extraje el header de la pagina escribí este código, pero no trabaja
Código PHP:
array(9) { 
[
0]=> string(25"HTTP/1.1 401 Unauthorized" 
[1]=> string(17"Connection: Close" 
[2]=> string(35"Date: Wed, 20 Apr 2011 16:06:23 GMT" 
[3]=> string(20"Content-Length: 1656" 
[4]=> string(23"Content-Type: text/html" 
[5]=> string(25"Server: Microsoft-IIS/6.0" 
[6]=> string(27"WWW-Authenticate: Negotiate" 
[7]=> string(22"WWW-Authenticate: NTLM" 
[8]=> string(21"X-Powered-By: ASP.NET" 
Código PHP:
$header[] = "HTTP/1.1 401 Unauthorized";  
$header[] = "Connection: Close";
$header[] = "Date: Wed, 20 Apr 2011 16:06:23 GMT";  
$header[] = "Content-Length: 1656"
$header[] = "Content-Type: text/html";  
$header[] = "Server: Microsoft-IIS/6.0";  
$header[] = "WWW-Authenticate: Negotiate";  
$header[] = "WWW-Authenticate: NTLM";  
$header[] = "X-Powered-By: ASP.NET";
$ch curl_init(); 
curl_setopt($chCURLOPT_URL,'http://miusuario:[email protected]/?p=view&pg=2'); 
curl_setopt($curlCURLOPT_HTTPHEADER$header); 
curl_setopt($curlCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)'); 
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
$page curl_exec ($ch); 
curl_close ($ch);
echo 
$page
que estoy haciendo mal???

Última edición por jpinedo; 20/04/2011 a las 20:02 Razón: a pedido del usuario
  #5 (permalink)  
Antiguo 20/04/2011, 11:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.728
Antigüedad: 9 años, 6 meses
Puntos: 1512
Respuesta: Uso de CURL para autentificarse en servidor ISS

Debea arreglar las variables, tienes unas como ch y otras como curl.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 20/04/2011, 12:10
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: Uso de CURL para autentificarse en servidor ISS

Coloque en todos $ch, pero parece que no trabaja ya que esta como 20 minutos buscando la pagina en el navegador, y no continua. El header que puse estará bien o tendré que hacer alguna modificación?
  #7 (permalink)  
Antiguo 20/04/2011, 12:45
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 7 años, 10 meses
Puntos: 4
Respuesta: Uso de CURL para autentificarse en servidor ISS

tienes un serdonde dejame unos minutos y vere si te lo soluciono estan mal las variables. y cosas creo que estan mal colocadas o no tienen que ver
  #8 (permalink)  
Antiguo 20/04/2011, 12:52
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 7 años, 10 meses
Puntos: 4
Respuesta: Uso de CURL para autentificarse en servidor ISS

La manera correcta de extraer el contenido es de esta forma :

Código PHP:
/*Trabaja en local  no funciona si tiene desabilitado por el servidor allow_url_fopen*/
         
if (file_get_contents($url)){
        echo 
"<p>existe</p>";
        echo 
file_get_contents($url);
         }else{
        echo 
" <p>no existe</p>";
         } 


MEtedo con session Ccurl a otra url :
/*No recomendado desabilitar allow_url_fopen sino seras un festin para los programdores de codigo seguro*/
Código PHP:


// Crear un nuevo recurso cURL  
$ch curl_init();  

// Configurar URL y otras opciones apropiadas  
curl_setopt($chCURLOPT_URL"http://www.url.com/");  //Identificamos la url de destino Ccurl
curl_setopt($chCURLOPT_HEADERFALSE); //curl header es igual a false por tanto nose muestra 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);  //debuelve la conexion cCurl para mostrar o extra contenido


$destino =  curl_exec($ch);  

if (
curl_exec($ch)!== FALSE

   echo 
"<p>Si  existe</p>"
echo 
$destino;

else 

   echo 
" <p>no existe</p>"


// Cerrar el recurso cURL y liberar recursos del sistema  
curl_close($ch); 

Espero te sirva.



//esto sera mejor que me lo expliques nose que pretendes con eso
Cita:
curl_setopt($curl,CURLOPT_USERPWD,$user . ":" . $password);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, true);
//esto nose por que lo pones diciendo el navegador

Cita:
curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/4.0");

// y todo esto no dices que el heade no lo itulizas?

Cita:
$header[] = "HTTP/1.1 401 Unauthorized";
$header[] = "Connection: Close";
$header[] = "Date: Wed, 20 Apr 2011 16:06:23 GMT";
$header[] = "Content-Length: 1656";
$header[] = "Content-Type: text/html";
$header[] = "Server: Microsoft-IIS/6.0";
$header[] = "WWW-Authenticate: Negotiate";
$header[] = "WWW-Authenticate: NTLM";
$header[] = "X-Powered-By: ASP.NET";
  #9 (permalink)  
Antiguo 20/04/2011, 13:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.728
Antigüedad: 9 años, 6 meses
Puntos: 1512
Respuesta: Uso de CURL para autentificarse en servidor ISS

@diego007007, he tratado con lo que indicaste y la única variable que al parecer usan para verificar si estás usando algún navegador es Content-Length. Se queda pensando y lo deje por más de 30 minutos corriendo y nunca terminó.

Habría que ver que otra opción tienen que hace que se quede pensando. Si la encuentro te indico, ahora no quiere decir que te quedes esperando que lo haga solamente, trata a ver si lo encuentras y si es así nos dejas saber que me interesa para así aprender
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 20/04/2011, 13:36
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: Uso de CURL para autentificarse en servidor ISS

Gracias @abimaelrc por tu ayuda, voy a seguir intentado a ver que consigo

Etiquetas: curl, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 19:33.