68user's page 掲示板

Prev< No. 1846〜1854> Next  [最新発言に戻る] [過去ログ一覧]
No. 1846 # rosegarden 2001/03/22 (木) 06:15:44
>>1845 rosegarden
この他にも

#!/usr/bin/perl -w

use vars qw($login $pass $uid $gid);

($login, $pass, $uid, $gid) = getpwnam('root');

print "$login:(password):$uid:$gid\n";
exit;

などと、use vars で宣言しておけば文句を言われないようです。
詳しくは、perldoc vars してみてください。

No. 1847 # ふくし 2001/03/22 (木) 10:09:46
にゃるほど、

ふじさん>
リスト要素にすれば undef を左辺に持っていけるんですね。
undef = 3; だと怒られますけどね。(当たり前)
これは言いたいことを強烈に表現できているような気がします。

rosegarden さん>
my や use vars を使った方法もいいですね。
この問題がよく出てくるのはファイルの stat を受けるときなんですが、
こういう意味のある変数のときは変数名をつけておいて使わない
(そのうち使うかもしれないので)
というのが便利なので、使わせていただきます。

みなさんどうもありがとうございました。勉強になるー

No. 1848 # d-jiro 2001/03/22 (木) 18:54:15
いつも拝見しながら勉強させていただいています。
Perlを使ったソケット通信について質問があります。

HTTPSサーバに対してのソケット通信です。

http://X68000.startshop.co.jp/~68user/net/http-2.html
にあるように、通常のソケット通信はできたのですが、
相手がHTTPSになるとヘッダの都合か、まったくうまくいきません。
たとえば、

自分のサーバ →POST→ 相手のCGIのあるサーバ(https)
                                                                      ↓
ブラウザ上にデータを表示 ← 相手が出力したデータを取得

このようなイメージです。
通常のHTTPでのソケット通信の場合、出力するヘッダは、
  "POST /sample.cgi HTTP/1.0\r\n"
  "\r\n(空行)"
  "(POSTで送信するデータ群)"
このような感じだと思うのですが、HTTPS相手だと
まったく受け付けてくれません・・・。
これってSSLを相手が利用している以上、不可能なことなのでしょうか?
皆様の知識と知恵を貸してください、お願いします。

No. 1849 # 68user 2001/03/23 (金) 13:22:14
>>1848 d-jiro
> このような感じだと思うのですが、HTTPS相手だと
> まったく受け付けてくれません・・・。
としたいなら、自前で相手サーバのポート 443 (https の
ポート番号) に繋げて、自前でデータを暗号化してから
ソケットに送り、受け取ったデータは復号化する必要が
あります。これを全部やるのはとてもとても面倒なので、
モジュールを使いましょう。

まず、OpenSSL (http://www.openssl.org) をインストール
してください。で、
    http://www.cpan.org/modules/by-module/Net/
から Crypt-SSLeay モジュールを入れて下さい。これは LWP を
使うことを前提としたもののようです。

あるいは、Crypt-SSLeay モジュールの代わりに Net::SSLeay
というモジュールもあり、socket like に使えますが、現在は
保守されていないのかもしれません。

# http://www.cpan.org/modules/by-module/Net/Crypt-SSLeay-0.23.readme
# http://www.cpan.org/modules/by-module/Net/Net_SSLeay.pm-1.05.readme

なお、どちらも使ったことがないので、上に書いたことは
全て想像です。成功したか失敗したか結果を教えて下さい。

>>1844 ふじ
そうか、undef っちゅうのがありましたね…。

>>1846 rosegarden
これとは逆に、use vars すると warning が出なくなって
困ったことがあります (そのときは warning を出してほしかった)。

No. 1850 # whoisおしえてください 2001/03/23 (金) 16:43:32
whoisのプログラムをプログラムソースを探しているのですが、
どちらにあるかご存知ありませんか?
できればperlがいいのですが。

よろしくお願いいたします。

No. 1851 # 68user 2001/03/23 (金) 17:38:02
>>1850 whoisおしえてください
> whoisのプログラムをプログラムソースを探しているのですが、
    perl 版
        http://ring.asahi-net.or.jp/pub/lang/perl/CPAN/authors/id/D/DH/DHUDES/

    ついでに C言語版 (FreeBSD の whois。最近のは IPv6 化されています)
        http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/usr.bin/whois/whois.c

    whois プロトコル
        http://ring.asahi-net.or.jp/pub/doc/RFC/rfc1834.txt

てなところでしょうか。

No. 1852 # d-jiro 2001/03/23 (金) 23:08:37
>>1849 68user
>http://www.cpan.org/modules/by-module/Net/
>から Crypt-SSLeay モジュールを入れて下さい。これは LWP を
>使うことを前提としたもののようです。

こちらの方法で試してみることにします。

おそらく数日後に結果が報告できると思います。
つまづきながらですが、また質問させていただくかもしれません。
ありがとうございました。

No. 1853 # PHP 2001/03/25 (日) 03:06:26
こんばんは、現在検索エンジンを作成中ですが、キーワード入力の所で
いきなりつまずいています。
良く検索エンジン(goo,infoseek)等で検索文字を複数キーワード入力
し、キーワード間はスペースもしくは”|”パイプで区切る事をします。
単一キーワードは簡単に出来るのですが、このスペース区切りで
複数キーワードを引数にする方法がわかりませんが、宜しければお教え
いただけないでしょうか?

No. 1854 # d-jiro 2001/03/25 (日) 20:00:22
先日HTTPS接続のことで質問したものです。

HTTPS相手のPOSTでのCGI接続は、
Crypt-SSLeayモジュールを導入し、
LWPを使うことで解決しました。
部分的な引用でわかりにくいかもしれませんが、

$req = HTTP::Request->new( POST => "$url" );
$req->content_type('text/plain');
$req->content('$postdata');

とすることで、HTTPSだと意識することなく
レスポンスをもらうことができました。

本当にありがとうございました。

Prev< No. 1846〜1854> Next  [最新発言に戻る] [過去ログ一覧]