Почему я не могу запустить скрипт против Localhost?

У меня есть сценарий, который читает из method файл:

OPTIONS

и проверки, ли OPTIONS позволяется на конкретном сайте. Сценарий:

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

Таким образом, я могу запустить этот тест против google.com и других сайтов. Но когда я работаю против localhost:8080 Я получаю ошибку:

nc: getaddrinfo: Name or service not known

Я очень плохо знаком со сценариями. Кто-либо может выручить меня?

0
задан 25 July 2012 в 12:47

2 ответа

Я не думаю, что это проблема сценариев, но ваш синтаксис в команде nc.

Синтаксис nc: nc -l -p port [-options] [hostname] [port] Для получения дополнительной информации см. Man nc.

При использовании команды nc после имени хоста следует порт (ы), разделенные пробелом (ами). Если вы вызовете ваш скрипт с параметром localhost: 8080, оболочка не будет переводить это, поэтому порт будет считаться частью имени хоста.

0
ответ дан 25 July 2012 в 12:47

Чтобы исправить это, добавьте следующее в ваш / etc / hosts, если его там еще нет, который есть в большинстве, если не во всех выпусках Ubuntu:

'127.0.0.1 localhost'

Однако я согласен с Йенсом. Кажется, ваш синтаксис неверен. Вы говорите, что запускаете его с localhost: 8080, однако в вашем скрипте порт 80 жестко запрограммирован, то есть вы на самом деле говорите, что порт 80 на хосте localhost: 8080 и, конечно, этот хост не существует.

С уважением,
Йохен

0
ответ дан 25 July 2012 в 12:47

Другие вопросы по тегам:

Похожие вопросы: