Pregunta

Tengo un script que comprueba las respuestas de los servidores HTTP usando la PERA HTTP clases.Sin embargo, recientemente he encontrado que el guión falla en los servidores de FTP (y probablemente cualquier cosa que no es HTTP o HTTPS).Traté de Google, pero no encuentro ningún script o código que devuelve el servidor de código de estado desde servidores que no sean servidores HTTP.

¿Cómo puedo averiguar el estado de un grupo de noticias o en el servidor FTP con PHP?

EDITAR:Debo aclarar que yo estoy interesado solamente en la capacidad para leer de un servidor FTP y el directorio que especifique.Necesito saber si el servidor está muerto/desaparecido, yo no estoy autorizada para leer, etc.

Por favor, tenga en cuenta que, aunque la mayoría del tiempo me siento independiente del idioma, todo el sitio web es PHP, y un PHP solución sería el mejor para fácil de mantenibilidad y extensibilidad en el futuro.

¿Fue útil?

Solución

HTTP funciona de forma ligeramente distinta FTP aunque por desgracia.Aunque ambos el mismo aspecto en su navegador, HTTP funciona con la base de URI (es decir,para acceder a Un recurso, tiene un identificador que indica cómo acceder a esa).

FTP es muy antiguo servidor de la escuela impulsada.Incluso FTP anónimo es un poco de un hack, ya que todavía proporcionar un nombre de usuario y contraseña, es definido como "anónimo" y su dirección de correo electrónico.

Comprobar si un servidor FTP es un medio de comprobación de

  1. Que se puede conectar con el servidor FTP

    if (!($ftpfd = ftp_connect($hostname))) { ... }

  2. Que se puede iniciar sesión en el servidor:

    if (!ftp_login($ftpfd, $username, $password)) { ... }

  3. Entonces, si hay más recursos subyacentes que usted necesita para acceder a la prueba de si un determinado sitio, a continuación, utilizar una adecuada operación en ellos.por ejemplo,en un archivo, tal vez de usar ftp_mdtm() para obtener la hora de la última modificación o en un directorio, a ver si ftp_nlist() obras.

Otros consejos

¿No sería más sencillo utilizar el built-in PHP FTP* funcionalidad de intentar rodar su propia?Si la URI es que viene de una fuente fuera de su control, usted necesita para comprobar el protocolo de definición (http:// o ftp://, etc) con el fin de determinar que la funcionalidad de uso, pero que es bastante trivial.Si no es ahora protocolo especificado (realmente debe ser!) entonces usted podría intentar defecto para http.

Si quieres leer las respuestas específicas, usted tendrá que abrir un socket y leer/escribir datos de forma manual.

<?php
$sock = fsockopen($hostname, $port);
?>

Luego, tendrás que fput/fread de datos de ida y vuelta.
Para ello será necesario que leer el protocolo FTP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top