カレッヂ |
質問者 ドラキュラ君
投稿日 2/14(木) 16:31:26
Linux サーバーで、 PerlでのネットワークWebクライアント作成を試みております。 そこで、SSLでの通信についてお尋ねします。 SSLの通信を行なう時には connect/acceptしたファイルディスクリプタを SSLに引き渡してやれば良いと、思うのですが、 その具体的な手順がわからないものです。 Perl のサンプルコードがあれば お教えいただくことは、可能でしょうか・・・ また、そのための準備も定型化されているので簡単に、 暗号通信が実現できるようなのですが・・・ #SSL #以下に暗号化通信を始めるまでの流れを説明します。 # #ライブラリを初期化 #SSL_CTX(context structure)を作る #SSL_CTXのオプション指定 #SSL(個々のSSLコネクション情報を保持)を作る #ファイルディスクリプタなどを結びつける #通信の開始 #となります。 初心者の浅知恵で、つくったもので、 不適切な面々がございましょうが、 御教授頂ければありがたいです。よろしくお願い致します。 ==========================ソース================================ #日本語 require 'jcode.pl'; use FileHandle; use Socket; # Socket モジュールを使う # HTTP プロトコルを使う $port = getservbyname('http','tcp'); # ホスト名を、IP アドレスの構造体に変換 $iaddr = inet_aton("$PST_HTTPDPOST_DOMAIN") or die "$PST_HTTPDPOST_DOMAIN は存在しないホストです。\n"; # ポート番号と IP アドレスを構造体に変換 $sock_addr = pack_sockaddr_in($port,$iaddr); # ソケット生成 socket(SOCKET,PF_INET,SOCK_STREAM,0) or die "ソケットを生成できません。\n"; # 指定のホストの指定のポートに接続 connect(SOCKET,$sock_addr) or die "$PST_HTTPDPOST_DOMAIN のポート$portに接続できません。\n"; autoflush SOCKET (1); # ファイルハンドル SOCKET をバッファリングしない select(SOCKET); $|=1; select(STDOUT); ##GETに固定する # WWWサーバにHTTPリクエストを送る print SOCKET "GET $strGET_DOMAINPAGE HTTP/1.0\r\n"; print SOCKET "Host: $PST_HTTPDPOST_DOMAIN\r\n"; print SOCKET "\r\n"; # ヘッダ部分を受け取る while (<SOCKET>){ # 改行のみの行ならループを抜ける m/^\r\n$/ and last; } print "Content-type:text/html\n\n"; # ボディ部分を受け取り、表示 while (<SOCKET>){ $WPOP = $_; &jcode'convert(*WPOP, "sjis"); $WPOP =~ s/EUC-JP/s-jis /ig; } ==========================ソース================================ 何分、初心者でお手数をおかけいたします。 お忙しいかと思いますが、よろしくお願い申し上げます。 |
回答者 呑兵衛@大阪
[削除]
投稿日 2/15(金) 23:59:48
う〜〜ぅ。 SOCKETで挑戦する段階ではないようです、多分。 CPANのお世話になりませんか? 余計ですが、このあたり、TCPを勉強しないとPerlすらまともにいかないと思われます。 |
返信(回答)する
Web裏技 |