Socket自体が、よくわかっていないのに、質問してすみません。

parl の Socketモジュールを使って通信をする際、httpだけでなく、httpsへも通信できるのでしょうか?

ご教授よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

perl は、ほとんど経験がありませんが、分かる範囲で。



socket モジュールは、ソケット通信だけを提供してくれますから、暗号化を含む
https プロトコルは、その暗号化の部分を何か(自分で作るか、どこからか持ってくる
か)で実現してあげなくてはいけません。

LWP というモジュールを使うと http の扱いが楽になるようです。その世界で
なら、SSL をほとんど意識せずに、受信できそうですよ(→参考URL)。

SSL を使うには、Crypt::SSLeay というモジュールを導入する必要があるようです。

http://member.nifty.ne.jp/hippo2000/perltips/Cry …

参考URL:http://member.nifty.ne.jp/hippo2000/perltips/lwp …
    • good
    • 0
この回答へのお礼

たびたび助けていただきありがとうございます。

LWP 未だモジュールを入れていませんので、動作検証は出来ていませんが、とても参考になりました。

お礼日時:2001/12/06 14:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QSocketモジュール互換の plライブラリ?

ニフティでメール送信を行いたいのですが、sendmailが使えないので、最悪SMTPのプロトコルでPerlを使って通信をしたいのですが、ニフティではモジュールも使えないので、困っています。デコードメールは、制限が多く使いたくありません。Socketモジュール互換のライブラリなどあるのでしょうか?

あと@niftyではPHPは使えるのでしょうか?

Aベストアンサー

nifty では use Socket; が使えないようです。

niftyでsendmailを使う
http://homepage2.nifty.com/ders_soft/sendmail01.html

QHTTPDの AN HTTPサービス開始不可 なぜ?

困ってますのでどなたかおしえてください。
自宅サーバーをWindows Meにて立ち上げる最中なのですが、AN HTTP Server Home Pageにてhttpd Ver 1.42nを取得。httpdを“オプション一般"で開くと本来あるはずの“サービス”(“ログ”のすぐ隣)がないのでAN HTTPサービスを開始できなくて困っています。もう一台のXPでは問題ないのに・・Meはほかにも設定がいるのでしょうか?それとも何か私が見逃していることがあるのでしょうか?よろしくお願いします。

Aベストアンサー

自分のIPアドレスを調べて、
htp://IPアドレス/
で確認。

>HTTPサーバーとして動作してなくも、そのままアドレスを入力したら表示されるため
これは、
http://127.0.0.1/
にアクセスすれば確認できるかと。
(hはあえて全角にしてあります)

Qhttpとhttps間で商品データのcsvファイルを共有する方法

始めまして
私は、cahma netさんのcahma cargo「http://chama.ne.jp/download/cargo/index.htm」を使用させてもらっているのですが
httpに配置した「商品データーのcsvファイル」をhttpsに配置したcgiから読み込みたいのですがどうもうまくいきません。パーミッションの問題なのでしょうか?私の借りてるサーバーでは707・777等は、エラーを返されます。それともパーミッション以外に原因などはあるのでしょうか?どなたかお詳しい方教えて下さい!お願いします。

Aベストアンサー

絶対パスで一番身近なのはPerlのパスだと思います。
CGIの先頭行に

#!/usr/local/bin/perl

とか、書きますよね。この場合、

/usr/local/bin/perl

がPerlへの絶対パスです。
「#!」は宣言みたいなもので、スクリプト内の先行頭で使うだけのものなので混同しないように気を付けてください。
絶対パスというのは / から必ず始まります。
ほとんどのホスティングというのはFTPでログインしたディレクトリより上位階層があるのは先に述べたとおりです。
業者さんに問い合わせるのが早いと思いますが、以下のようなCGIでも調べる事が可能です。

#!/usr/local/bin/perl
print "Content-Type: text/html\n\n";
print $ENV{'SCRIPT_FILENAME'};

適当な名前で保存して(path.cgiとか)実行してみてください。
このCGIの絶対パスが表示されると思います。

下で相対パスの事を書きましたが、
CGIでのファイルの参照は相対でも絶対でもどちらでも構いません。

絶対パスで一番身近なのはPerlのパスだと思います。
CGIの先頭行に

#!/usr/local/bin/perl

とか、書きますよね。この場合、

/usr/local/bin/perl

がPerlへの絶対パスです。
「#!」は宣言みたいなもので、スクリプト内の先行頭で使うだけのものなので混同しないように気を付けてください。
絶対パスというのは / から必ず始まります。
ほとんどのホスティングというのはFTPでログインしたディレクトリより上位階層があるのは先に述べたとおりです。
業者さんに問い合わせるのが早いと思いますが、...続きを読む

Qサーバー上で動く cgiソフトで正常に動いていたsendmail機能が急に働かなくなった。何も変更してないのに、分かりません。

cgiソフトで、メールを受け取るsendmail機能が、ソフトの変更もしてないが急に働かなくなった。cgiソフト自体は動いています。メールだけが届きません。

Aベストアンサー

サーバーの問題では???
自宅サーバーであれば別ですが、そうでないのであればサーバー管理者に問い合わせてみてください。

Qsocketを使って外部のファイルを呼び込む

$Host= 'abc.hogehoge.co.jp';
$Page= "/test_order.cgi?pass=1234&id=1234'
$Addr= (gethostbyname($Host))[4];
$Name= pack("S n a4 x8", 2, 443, $Addr);
socket(S, 2, 1, 0);
connect(S, $Name);


binmode(S);
select(S);
$| = 1;

select(stdout);
print S "GET $Page HTTP/1.0\r\n\r\n";
$Data= '';
while (<S>){$Data= $_;}
close(S);
print"$Data";

現在ある決済システムを組み込もうとしております。
上のように外部ホストのアクセスしてパスワードやID、その他あるのですがそれで接続していてもどうにも$Dataに出力されません。
print S "GET $Page HTTP/1.0\r\n\r\n";
とありますが外部ファイルはhtmlファイルではありません。たんなるテキスト文字が出力されるはずです。
直接ブラウザに
https://abc.hogehoge.co.jp/test_order.cgi?pass=1234&id=1234'
とたたくとテキストが出力されます。
なにかまちがっているのでしょうか?

恐れ入りますがご教授お願いします

$Host= 'abc.hogehoge.co.jp';
$Page= "/test_order.cgi?pass=1234&id=1234'
$Addr= (gethostbyname($Host))[4];
$Name= pack("S n a4 x8", 2, 443, $Addr);
socket(S, 2, 1, 0);
connect(S, $Name);


binmode(S);
select(S);
$| = 1;

select(stdout);
print S "GET $Page HTTP/1.0\r\n\r\n";
$Data= '';
while (<S>){$Data= $_;}
close(S);
print"$Data";

現在ある決済システムを組み込もうとしております。
上のように外部ホストのアクセスしてパスワードやID、その他あるのですがそれで...続きを読む

Aベストアンサー

while (<S>){ $Data = $_; }


while (<S>){ print; }
とすれば表示されます。
こんだけ書ける人なら、後は判りますね。
(と言うかお茶でも飲んで落ち着けばご自分で判ったかと?)


このカテゴリの人気Q&Aランキング

おすすめ情報