Como saber si un recurso de una pagina web está disponible?

Iniciado por Trollwer, 7 Abril 2021, 11:15 AM

0 Miembros y 1 Visitante están viendo este tema.

Trollwer

Buenas tardes :rolleyes:
Como puedo saber mediante algún comando caso del CMD, como puedo saber si un recurso de una pagina web está disponible, por ejemplo, mediante un ping, ejemplo:
ping www.elpais.com <----- envía y recibe paquetes.
ping www.elpais.com/economia/ <--- Error (La solicitud de ping no pudo encontrar el host www.elpais.com/economia. Compruebe el nombre y
vuelva a intentarlo.)

¿De que forma puedo saber que está disponible ese apartado con un CMD?

Es por hacerme un script y analizar ciertas cosillas :rolleyes: :rolleyes: :rolleyes:
▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂

Machacador

#1
Interesante lo que quieres hacer... como yo no soy programador uso un producto ya hecho como este: https://www.soyyooestacaido.com/

:rolleyes: :o :rolleyes:
"Solo tu perro puede admirarte mas de lo que tu te admiras a ti mismo"

Trollwer

Desconocía esa página jajaja
pero no busco eso...  :rolleyes:
▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂

Danielㅤ

#3
Hola, lo más fácil, rápido y efectivo es hacer un simple código o incluso un .exe, que haga una petición HEAD y que devuelva un código de estado y dependiendo de ese código de estado, podrías saber si esa sección de esa x web existe o no.

Aquí un ejemplo:

Código de estado 200 (la URL existe y está disponible)
Código de estado 301 (la URL devuelve Moved Permanently eso quiere decir que o esa dirección no existe o no está disponible o incluso se haya movido a otro directorio)
Código de estado 404 (no existe esa URL y no está disponible)

De todas maneras aquí te dejo una web que hace eso mismo:

https://websniffer.cc/



Aunque yo personalmente preferiría hacer un código que haga ese trabajo.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

EdePC

Para implementar la solución de [D]aniel en CMD sería llamando a otra herramienta, por ejemplo lo más fácil sería llamar a PowerShell:

Compatible con Windows 8.0, 8.1 y 10
Código (dos) [Seleccionar]
PowerShell [Net.ServicePointManager]::SecurityProtocol='Tls12'; (iwr -Method 'HEAD' 'www.elpais.com').StatusCode

Eso debería devolver 200 en caso de éxito u otro código o error en caso de fallar.


Trollwer

Me sale esto:
iwr : No se puede analizar el contenido de la respuesta porque el motor de Internet Explorer no está disponible o la configuración del primer inicio de
Internet Explorer no está completa. Especifique el parámetro UseBasicParsing e inténtelo de nuevo.
En línea: 1 Carácter: 55

Que parámetro puedo usar para que lo analice mediante Google Chrome en lugar de Internet Explorer?
Saludos :rolleyes:
▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂

Xyzed

#6
Hola @Trollwer.

Si no entendí mal lo que quieres hacer es personalizar lo que mostrará el comando "ping" en caso de que ocurra x situación (en este caso, si los paquetes enviados no son recibidos).

Es decir, ¿quieres modificar lo que vendrían a ser las excepciones que arroja el ms-dos?

Actualizo:

Considerando que así es, te dejo la siguiente idea que se me ocurrió y podría ayudarte.

Código (dos) [Seleccionar]

@setlocal enableextensions enabledelayedexpansion
@echo off
SET /P ipreal=Ingresa la ip/dominio a comprobar:
set ipaddr=!ipreal!
set oldstate=neither
set state=funcionando correctamente.
ping -n 1 !ipaddr! >nul: 2>nul:
if not !errorlevel!==0 set state=presentando errores, intenta nuevamente.
if not !state!==!oldstate! (
    echo.El sitio esta !state!
    set oldstate=!state!
)
endlocal

validar.|bat/cmd/exe|

Recién dí con un post externo al foro, donde se mostraba una función bastante similar a la que estas buscando.

Edite un poco dicha función simplemente porque vi que había algunas cosas de más xD.

Lo que tendrías que hacer es guardar el código de arriba, con la extensión "bat/cmd/exe" (para que pueda detectar que se trata de una sentencia batch), en la carpeta "C:\Windows\System32", que es donde se almacenan todos los comandos ms-dos, y listo.

La próxima vez que ejecutes cmd, podrás utilizar el comando "validar" para hacer tu prueba.



Como podrás ver, lo encuadrado en color azul, es un test del comando, lo encuadrado en rojo es una demostración ejecutando el código de arriba pero de la forma "clásica" sin las "excepciones" que querías a tu gusto.

Saludos.
...

#!drvy

#7
Ping solo soporta hosts, ende siempre te va a tirar error cuando solicitas un recurso. Además una maquina puede no responder a PING pero si responder a otros protocolos.

Yo lo más sencillo que veo es usar cURL. Haces una peticion con --head y si te devuelve HTTP 200 es que bien, si te devuelve 404 es que no existe y si no puede resolver el host, te lo dice..

» curl --head https://elpais.com/economia/                                    drvy@vault-01
HTTP/2 200


» curl --head https://elpais.com/economiaksdjaklsdja/                         drvy@vault-01
HTTP/2 404


» curl --head dasdkasjdas.com                                                 drvy@vault-01
curl: (6) Could not resolve host: dasdkasjdas.com



Ya no me acuerdo si venia integrado en PowerShell, pero en todo caso lo puedes descargar desde aquí:
https://curl.se/windows/

Es una herramienta universal y casi obligatoria de tener.

Saludos

Trollwer

Cita de: Xyzed en  8 Abril 2021, 10:56 AM
Hola @Trollwer.

Si no entendí mal lo que quieres hacer es personalizar lo que mostrará el comando "ping" en caso de que ocurra x situación (en este caso, si los paquetes enviados no son recibidos).

Es decir, ¿quieres modificar lo que vendrían a ser las excepciones que arroja el ms-dos?

Actualizo:

Considerando que así es, te dejo la siguiente idea que se me ocurrió y podría ayudarte.

Código (dos) [Seleccionar]

@setlocal enableextensions enabledelayedexpansion
@echo off
SET /P ipreal=Ingresa la ip/dominio a comprobar:
set ipaddr=!ipreal!
set oldstate=neither
set state=funcionando correctamente.
ping -n 1 !ipaddr! >nul: 2>nul:
if not !errorlevel!==0 set state=presentando errores, intenta nuevamente.
if not !state!==!oldstate! (
    echo.El sitio esta !state!
    set oldstate=!state!
)
endlocal

validar.|bat/cmd/exe|

Recién dí con un post externo al foro, donde se mostraba una función bastante similar a la que estas buscando.

Edite un poco dicha función simplemente porque vi que había algunas cosas de más xD.

Lo que tendrías que hacer es guardar el código de arriba, con la extensión "bat/cmd/exe" (para que pueda detectar que se trata de una sentencia batch), en la carpeta "C:\Windows\System32", que es donde se almacenan todos los comandos ms-dos, y listo.

La próxima vez que ejecutes cmd, podrás utilizar el comando "validar" para hacer tu prueba.



Como podrás ver, lo encuadrado en color azul, es un test del comando, lo encuadrado en rojo es una demostración ejecutando el código de arriba pero de la forma "clásica" sin las "excepciones" que querías a tu gusto.

Saludos.


Muchas gracias y gran aporte, voy a intentar realizar ahora un script que tengo pensado hacer :silbar:

▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂

Trollwer

Cita de: #!drvy en  8 Abril 2021, 11:18 AM
Ping solo soporta hosts, ende siempre te va a tirar error cuando solicitas un recurso. Además una maquina puede no responder a PING pero si responder a otros protocolos.

Yo lo más sencillo que veo es usar cURL. Haces una peticion con --head y si te devuelve HTTP 200 es que bien, si te devuelve 404 es que no existe y si no puede resolver el host, te lo dice..

» curl --head https://elpais.com/economia/                                    drvy@vault-01
HTTP/2 200


» curl --head https://elpais.com/economiaksdjaklsdja/                         drvy@vault-01
HTTP/2 404


» curl --head dasdkasjdas.com                                                 drvy@vault-01
curl: (6) Could not resolve host: dasdkasjdas.com



Ya no me acuerdo si venia integrado en PowerShell, pero en todo caso lo puedes descargar desde aquí:
https://curl.se/windows/

Es una herramienta universal y casi obligatoria de tener.

Saludos

Muchas gracias, desconocía esta función, lo acabo de probar en el cmd y funciona perfectamente ;-)
▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇▇ ▅ █ ▅ ▇ ▂