Базовая аутентификация HTTP использует кодировку base-64 для имени пользователя и пароля вместе. Для имени пользователя testuser
и пароля hunter2
вы должны взять строку testuser: hunter2
и закодировать ее с помощью base64. Это даст вам строку dGVzdHVzZXI6aHVudGVyMg ==
Как, спросите вы, получить эту кодировку? В большинстве систем POSIX установлено openssl
, и в этом случае вы можете использовать вывод echo -n "testuser: hunter2" | openssl base64 -base64
. -n
очень важен, иначе вы также включите в кодировку новую строку
, что даст вам неверную закодированную строку (поскольку пароль не заканчивается на символ новой строки обычно).
Затем вы можете совершать транзакции через telnet
следующим образом:
telnet hostname.example.com 80
GET / HTTP/1.1
Authorization: Basic dGVzdHVzZXI6aHVudGVyMg==
Использованиеawk
:
Если вы хотите захватить целые строки, содержащие ключевое слово:
awk '/^insert_job|^watch_file/' file
, что также можно сделать с помощьюgrep
:
grep -E '^insert_job|^watch_file' file
Если вы хотите захватывать только поля после ключевых слов insert_job:
и watch_file:
, используйте параметр -F
для установки разделителя полей:
awk -F'[^ ]*: *' '/^insert_job/{a=$2}/^watch_file/{print a, $2}' file