Подтвердить что ты не робот

Использование wget для защищенного сайта с помощью NTLM

Попытка зеркалировать локальный сайт интрасети и найти предыдущие вопросы, используя 'wget'. Он отлично работает с анонимными сайтами, но я не смог использовать его на сайте, который ожидает имя пользователя\пароль (IIS с интегрированной проверкой подлинности Windows).

Вот что я передаю:

wget -c --http-user = 'domain\user' --http-password = pwd http://local/site -dv

Вот вывод отладки (примечание, которое я заменил некоторыми фиктивными значениями):

Setting --verbose (verbose) to 1
DEBUG output created by Wget 1.11.4 on Windows-MSVC.

--2009-07-14 09:39:04--  http://local/site
Host `local' has not issued a general basic challenge.
Resolving local... seconds 0.00, x.x.x.x
Caching local => x.x.x.x
Connecting to local|x.x.x.x|:80... seconds 0.00, connected.
Created socket 1896.
Releasing 0x003e32b0 (new refcount 1).

---request begin---
GET /site/ HTTP/1.0
User-Agent: Wget/1.11.4
Accept: */*
Host: local
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.1
Date: Tue, 14 Jul 2009 13:39:04 GMT
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
Content-Length: 4431
Content-Type: text/html

---response end---
401 Access Denied
Closed fd 1896
Unknown authentication scheme.
Authorization failed.

4b9b3361

Ответ 1

Проверка подлинности NTLM нарушена в wget 1.11, вместо этого используйте 1.10.

Ответ 2

Curl на самом деле, вероятно, лучший инструмент для извлечения контента с веб-серверов, прошедших проверку подлинности на NTLM. Вы можете получить эквивалентную функцию в предлагаемой командной строке wget, используя:

curl --anyauth --user username:password http://someserver/site

Ответ 3

Я видел ссылки на возможность использования NTLM Authorization Proxy Server, чтобы обойти эти проблемы.

Ответ 4

используйте параметр -–auth-no-challenge (wget 1.11 +)