Por que não consigo executar o script em relação ao Localhost?

0

Eu tenho um script que lê em method file:

OPTIONS

e verifica se o OPTIONS é permitido em um site específico. O script é:

#!/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

Para poder executar este teste no google.com e em outros sites. Mas quando eu corro contra localhost:8080 , recebo um erro:

nc: getaddrinfo: Name or service not known

Sou muito novo em scripts. Alguém pode me ajudar?

    
por batman 25.07.2012 / 10:47

2 respostas

1

Eu não acho que seja um problema de script, mas sua sintaxe no comando nc.

A sintaxe do

nc é: nc -l -p port [-options] [nome do host] [porta] Veja man nc para mais informações.

Ao usar o comando nc, o nome do host é seguido por portas separadas por espaços em branco. Se você chamar seu script com o parâmetro localhost: 8080, o shell não irá traduzir isso, então a porta será considerada como parte do nome do host.

    
por Jens 25.07.2012 / 11:10
0

Para corrigir isso, adicione o seguinte ao seu / etc / hosts, se ele ainda não estiver lá, o que está na maioria, se não em todos os releases do ubuntu:

'127.0.0.1 localhost'

No entanto, eu concordo com o Jens. Parece que sua sintaxe está incorreta. Yuu diz que você o executa contra localhost: 8080, mas na sua porta de script 80 é codificado, o que significa que você realmente diz porta 80 em host localhost: 8080 e é claro que esse host não existe.

Atenciosamente,
Jochen

    
por Jochen Oonincx 25.07.2012 / 15:27