perlでNTLM
perlで、LWPを使ってウェブのサイトをさっくりダウンロードなスクリプトを書こうとしていて、サーバーがNTLMで保護されていることに気づく・・・。
で、いろいろと調べたところ、Authen::NTLMというモジュールを発見。ActivePerlだと、Perl Package Manager(スタートメニューのプログラム一覧のActivePerl下にショートカットあり)で、NTLMというモジュールを検索してインストールする。なんちゃらNTMLっていうパッケージ群は古いのでちゃんと動かない様子。
そして、
use LWP::UserAgent; # keep-aliveにしないといけません my $ua = new LWP::UserAgent(keep_alive=>1); # 最初のホスト名:ポートは、アクセスするURLと同じ物 # ドメイン名\\ユーザー名は、Windowsドメインにログオンする場合と同じ物。 $ua->credentials("ホスト名:ポート", "", "ドメイン名\\ユーザー名", "パスワード"); my $req = HTTP::Request->new(GET => "http://ホスト名/somewhere/..."); my $content = $ua->request($req)->content;
というコードで動作するということらしい・・・。
手元では動かず・・・。認証がちゃんと出来てない。原因が分からない。こういうときは、
use LWP::Debug qw(+);
という行を追加すべしと書いてあるので、追加してみる。
ログが表示されるが、やっぱり原因が分からず・・・。