У меня есть сценарий, который читает из 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
Я очень плохо знаком со сценариями. Кто-либо может выручить меня?
Я не думаю, что это проблема сценариев, но ваш синтаксис в команде nc.
Синтаксис nc: nc -l -p port [-options] [hostname] [port] Для получения дополнительной информации см. Man nc.
При использовании команды nc после имени хоста следует порт (ы), разделенные пробелом (ами). Если вы вызовете ваш скрипт с параметром localhost: 8080, оболочка не будет переводить это, поэтому порт будет считаться частью имени хоста.
Чтобы исправить это, добавьте следующее в ваш / etc / hosts, если его там еще нет, который есть в большинстве, если не во всех выпусках Ubuntu:
'127.0.0.1 localhost'
Однако я согласен с Йенсом. Кажется, ваш синтаксис неверен. Вы говорите, что запускаете его с localhost: 8080, однако в вашем скрипте порт 80 жестко запрограммирован, то есть вы на самом деле говорите, что порт 80 на хосте localhost: 8080 и, конечно, этот хост не существует.
С уважением,
Йохен