Question Pourquoi je ne peux pas exécuter le script contre localhost?


J'ai un script qui lit à partir de method fichier :

OPTIONS

et vérifie si le OPTIONS est autorisé sur un site particulier. Le script est:

#!/bin/bash
#
#
if [ ! $# == 1 ]
then
        echo "Usage: $0 [ URL ]"
        exit 1
fi

cat method | while read LINE
                do
                cat << __eof > header
$LINE / HTTP/1.1
Host:$1


__eof
nc $1 80 < header
done

Je peux donc exécuter ce test sur google.com et d'autres sites. Mais quand je cours contre localhost:8080 J'ai une erreur:

nc: getaddrinfo: Name or service not known

Je suis très novice en matière de script. Quelqu'un peut m'aider?


0
2017-07-25 08:47


origine




Réponses:


Je ne pense pas que ce soit un problème de script mais votre syntaxe à la commande nc.

La syntaxe nc est: nc -l -p port [-options] [nom d'hôte] [port] Voir man nc pour plus d'informations.

Lorsque vous utilisez la commande nc, le nom d'hôte est suivi du ou des ports séparés par des espaces. Si vous appelez votre script avec le paramètre localhost: 8080, le shell ne le traduira pas afin que le port soit considéré comme faisant partie du nom d'hôte.


1
2017-07-25 09:10





Pour corriger cela, ajoutez ce qui suit à vos fichiers / etc / hosts, si ce n'est pas déjà le cas, ce qui se trouve sur la plupart des versions d'ubuntu, sinon toutes:

'127.0.0.1 localhost'

Cependant je suis d'accord avec Jens. Il semble que votre syntaxe soit incorrecte. Yuu dit que vous le lancez contre localhost: 8080 Cependant, dans votre script, le port 80 est codé en dur, ce qui signifie que vous dites en fait le port 80 sur l'hôte localhost: 8080 et bien sûr, cet hôte n'existe pas.

Sincères amitiés,
Jochen


0
2017-07-25 13:27