• 締切済み

続:LWPでHTML取得(その前にSocket取得)できない

以前このカテゴリで質問させて頂いたものです。 (質問No.2007952、質問:LWPでHTML取得(その前にSocket取得)できない)  ※twinkleluzさんには大変お世話になりました。 上記質問では解決しきれなかった問題として、 ウィルスセキュリティのファイアウォールの設定が出来ない事、 があります。 Perlで、LWP::Simple::get()を使用し 一般サイトのHTMLソースを インターネット経由で取得出来るようにするには どのような設定を行えばよいか、 perl、ウィルスセキュリティについて詳しい方の 説明を宜しくお願い致します。 なお、使う関数ではなくperlの実行ファイルを ファイアウォールに登録というのは既に行っております。 ※ウィルス対策カテゴリでも同じ質問をさせて頂きましたが 回答を頂けませんでしたのでこちらでも質問させて頂きます。

みんなの回答

noname#19175
noname#19175
回答No.3

> ただ、何故かウィルスセキュリティのアンインストールまで行うと接続できるようになります。 セキュリティー関係の統合ソフトウェア? アンインストールまでしないといけないのは、停止できてないだけじゃないんでしょうか? > Invalid argument とりあえず、このエラーをなくすのが先では? LWPをどんな使い方をされているのかがわからないので、それを出してもらえないと答えられませんし、 なぜウイルスセキュリティーをアンインストールすると接続できるのか、という原因もわかりませんが、、、 >>・ファイアーウォールの種類は何でしょうか。 > すみません、どのような答をお返しすればよいかわかりません。回答例を頂けませんでしょうか。 ipfwかNortonInternetSecurityかWindowsPersonalFirewallくらいしか知りませんが、ほかにも種類はあります。 (名前を知ってるだけで使ったことはない(設定を変更したことがない)ですが。その辺はネットワークセキュリティーカテゴリーの方の方が詳しいと思います。) >・ファイアーウォールのログにはなんと書かれていますか? 私にはログの読み方がわからないので、識者の方の回答をお待ちください。

worao
質問者

お礼

>セキュリティー関係の統合ソフトウェア? その通りです。 ファイアウォールの他にウィルススキャンやら スパム対策機能やらが盛り込まれてます。 >アンインストールまでしないといけないのは、停止できてないだけじゃないんでしょうか? わかりました。 その停止方法はちゃんとしかるべきカテゴリで 訊くように致します。 >> Invalid argument >とりあえず、このエラーをなくすのが先では? 自分では無くせなかったのです。 問題のソフトのアンインストールで期待していた動作が確認できるので スクリプトの問題では無いです。 スクリプトを載せます。 ----------------------------------------------- #! /usr/bin/perl use LWP::Simple; #文字コード変換 use Jcode; use Encode qw/from_to/; use Encode::Guess qw/euc-jp shiftjis 7bit-jis/; use constant CHAR_CODE => "shiftjis"; $output = "./output.txt"; if(!open (OUT, "+<$output" )){ print "cannot open file."; } @codes = (7212,7213); foreach $code (@codes){ my $url = "http://finance.livedoor.com/quote/format?c=" . $code; my $content = get($url); Jcode::convert( $content, CHAR_CODE); @temp = split(/\n/,$content); my $flg = 0; my $target; foreach my $line (@temp){ if($flg == 1){ $line =~ /<small>(.*)<\/small>/; $target = $1; last; } if ($line =~ /発行済株式数/){ $flg = 1; next; } } print "[$code]$target株\n"; print OUT "$code\t$target\n"; } close(OUT); exit(0); ----------------------------------------------- 以上、宜しくお願い致します。

noname#19175
noname#19175
回答No.2

念のためお聞きしますが、 ・ファイアーウォールを停止、または無効にした状態での接続はできていますか? もしファイアーウォールを停止した状態でHTMLファイルを取得できるのであれば、 ・PerlスクリプトからLWP::Simple::getを使ったときに、もし何らかのエラーが返ってくるのであれば、そのエラーの内容は何でしょうか。 ・ファイアーウォールの種類は何でしょうか。 ・ファイアーウォールのログにはなんと書かれていますか? ・Perlスクリプトの実行方法は、CGIでしょうか?コマンドからでしょうか? (もしCGIでの実行なら、 Perlアプリケーションではなく、Perlスクリプトやウェブサーバーソフトウェア(Apacheなど)を登録してみてはいかがでしょうか?) とくにファイアーウォールの種類がわからなければ、設定方法はわかりません。 ファイアーウォールそれぞれで設定方法が違います。 それから質問内容がファイアーウォールの設定の仕方ですので、Perlでもウイルスでもありません。 ネットワークセキュリティー http://itmedia.okwave.jp/oshiete.php3?c=227 になると思いますし、こちらで上記をふまえて聞いた方がより詳しい方がおられると思います。

worao
質問者

お礼

回答ありがとうございます。 >・ファイアーウォールを停止、または無効にした状態での接続はできていますか? いいえ。接続できておりません。 タスクマネージャからプロセス終了をしても接続できません。 ただ、何故かウィルスセキュリティのアンインストールまで行うと接続できるようになります。 >・PerlスクリプトからLWP::Simple::getを使ったときに、もし何らかのエラーが返ってくるのであれば、そのエラーの内容は何でしょうか。 print $@; や print $!; をそのスクリプト実行時に実行してみると、 Invalid argument connect: timeout このようなメッセージが出ます。 >・ファイアーウォールの種類は何でしょうか。 すみません、どのような答をお返しすればよいかわかりません。回答例を頂けませんでしょうか。 >・ファイアーウォールのログにはなんと書かれていますか? 131466006,1511178,<userid>,SYSTEM,200,10,1,0,0,"AppAccess",0,|D:\cygwin\bin|,|perl.exe|,0,0,1,0 この程度のログしか吐かれない為、イマイチ分かりません。 >・Perlスクリプトの実行方法は、CGIでしょうか?コマンドからでしょうか? コマンドから、です。 以上、よろしくお願いいたします。

noname#19175
noname#19175
回答No.1

(1) Perl、LWPを使うとファイアウォールに止められるから、 それを止められないようにファイアーウォールを設定する方法は? (2) Perlでファイアーウォールを設定する方法は? (3) Perl、LWP::Simple::getの使い方は? という質問の、どれのことを言いたいのでしょうか?

worao
質問者

お礼

ご回答ありがとうございます。 説明が分かりづらく、申し訳ありません。。 (1)の答が知りたいです。 宜しくお願い致します。

関連するQ&A