よろしくお願いします。
実は、MCP(Win2000)の勉強中なんです。
RAS、VPNの練習したいのですが、
これって、ダイアルアップ接続でインターネットをしている
場合では2台PCがあっても、不可能でしょうか?
やっぱりどこかの企業に入らないと設定等出来ないですか?
アドバイスお願いいたします。(やっぱり実機確認したいんですが)

A 回答 (1件)

RASならダイヤルアップでも問題ないんじゃないかと思うんですが...


1台をサーバにして、モデムを自動で受けるように設定して、もう1台で
そのサーバの電話番号へ電話をかける。

VPNの場合、2台をインターネット接続させて、そのほかのマシンから
どちらかのマシンへアクセスを試みる。
で、VPN認証で引っかかっておちる...とか。

別にMCPの勉強なら実機で確認する必要はないと思いますけどね。
参考書はいっぱいあるでしょうし。

(一応、これでもMCP4教科合格してます。)
    • good
    • 0
この回答へのお礼

早速の解答ありがとうございます。
(寝ぼけてCGIのところに投稿してしまいました。すいません。)

RAS、VPNに関しては、別に実機は大丈夫みたいですね。
ありがとうございました。

お礼日時:2001/07/04 01:58

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

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

QCGIプログラムに詳しい方よろしくお願いします。

[選択してください]の項目を追加させたいのですが例えば下のような感じに
この場合下記のタグをhtmlに添付するだけでいいのでしょうか?
それともプログラムにも何かを追加する必要があるのでしょうか?
選択項目を付ける方法を教えてくれませんか

[選択してください]
あなたの血液型は?
<SELECT name="blood">
<OPTION value="a" selected>A</OPTION>
<OPTION value="b">B</OPTION>
<OPTION value="o">O</OPTION>
<OPTION value="ab">AB</OPTION>
</SELECT>

Aベストアンサー

>この場合下記のタグをhtmlに添付するだけでいいのでしょうか?
セレクトタグなどはhtmlに添付させてもプログラム自体には、何ら支障も影響もありませんよ。

セレクトタグのようにhtmlから直接呼び出すものはcgiのプログラミングとは無関係ですね。

QCGIは初心者です。よろしくお願いします。

先週から派遣社員として、モバイルのサイトのCGIをC言語(GLib)で作成する仕事についたのですが、2年前までVBを中心とした開発しかやったことがなく、今回2年ぶりに現場復帰したばかりです。いまいち以下のことが理解できないのです。

1、値の引渡しの方法がわからない。単なプログラムすらもかけない

2、コンテキストがよくわからない

3、ハッシュテーブルとリスト型に変換

4、大まかな流れがわかっていないのかもしれません。

こんなお馬鹿な質問しかできませんが、お勧めのサイトか簡単なサンプルプログラムとかいただけたら幸いです。

Aベストアンサー

> 1、値の引渡しの方法がわからない
何と何との間の値の引渡しなのでしょう?

携帯とCGI の間というのであれば、携帯に出力する
HTML の中で
<form action="hogehoge.cgi" method="post">
<input type="hidden" name="var_name" value="var_value">
</form>
のように form を作成し、
C 言語の CGI の方で、標準入力から

int length = atoi( getenv("CONTENT_LENGTH") );
char* buf = (char*)malloc(sizeof(char)*(length+1));
int n = fread( buf, 1, length, stdin );
buf[n] = '\0';

よみとれば buf に var_name=var_value という形式で
値を引き渡すことができます。

form の mathod に get を使った場合
int main( int argc, char* argv[] )
の argv に入るということもあります。

> 2、コンテキストがよくわからない
何の「コンテキスト」なんでしょう?

http://ew.hitachi-system.co.jp/w/E382B3E383B3E38386E382ADE382B9E38388.html
の意味で解釈しましたけど、いきなり

2、文脈がよくわからない
って言われてもですね・・・、何の文脈が分からないんですか?

> 3、ハッシュテーブルとリスト型に変換
何をハッシュやリストに変換するのでしょう?

仮に携帯からの送られてくるデータをハッシュに
変換するのであれば、

char sz_key[] = "var_name";
char sz_value[] = "var_value";

GHashTable* hash_table = g_hash_table_new(NULL, NULL);
g_hash_table_insert(hash_table, sz_key, sz_value);

いったん、文字列型(char[]) に格納してから
g_hash_table_insert にてハッシュに挿入すればいいです。

> 4、大まかな流れがわかっていないのかもしれません。

1. FORM から送られてくるデータを受け取る
2. そのデータを元に、なんなからの処理をする
3. 結果を HTML として出力する

以上が大まかな流れです。

一番小さい C 言語による CGI プログラムは

#include<stdio.h>
int main(void)
{
printf("Content-type: text/html\n\n");
printf("<html><body>Hello CGI by C.</body></html>");
}

はい。ここからがんばってください。

------
え~、VB という言語は、ポインターという概念が
表面に出てこない言語なので、C で CGI を作成する
ことを考えた場合、プログラム完全初心者と思われた方が
よろしいかと思います。

正直に申しまして、上記のような質問をしている段階で
あるならば、かなり真剣に勉強しないと開発は出来ない
と思います。

google で C言語 CGI とキーワードと入力すると
いくつもWeb ページがヒットしました。
よさげなページをピックアップしましたので
それらの解説ページをよく読み、本屋で C 言語による
CGI 作成の本を購入されよく読み、勉強してください。

http://www2k.biglobe.ne.jp/~motoi/cdecgi02.html

http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/

http://www.din.or.jp/~raelian/cgi_formiddle.html

http://mewc.to/CGI/howto/

> 1、値の引渡しの方法がわからない
何と何との間の値の引渡しなのでしょう?

携帯とCGI の間というのであれば、携帯に出力する
HTML の中で
<form action="hogehoge.cgi" method="post">
<input type="hidden" name="var_name" value="var_value">
</form>
のように form を作成し、
C 言語の CGI の方で、標準入力から

int length = atoi( getenv("CONTENT_LENGTH") );
char* buf = (char*)malloc(sizeof(char)*(length+1));
int n = fread( buf, 1, length, stdin );
buf[n] = '\0';

よみと...続きを読む

Qやっぱり分からなかったです・・・

http://shortmessage.hypermart.net/
ここのショートメッセージっていうのなんですが
この前も質問したんですがやっぱり分からなかったです。

1.ソースのダウンロード
2.index.cgi の最上部のPerlのパスを設定する ex) #!/usr/local/bin/perl
3.各CGIの変数設定 index.cgi (ヒント)
中身を見ながら適切に設定してください。
4.サーバにUPしたあと上記の『ファイル構成』に記したパーミッション値に属性変更
ここでskin.htmlっていうのは元あったWebのトップページでよい。
skin.html内にShortmessageを入れたい位置に {short} と書く。
5.index.cgiにアクセスしてみる。
6.動いてなかったら変数の見なおしなどしてみてください。

の内、3までしか分からないです。
CGIというやつは初心者なのですが、これは初心者でも出来るものなんでしょうか?
分かる人がいれば(出来るだけ詳しく)教えてください、お願いします。

http://shortmessage.hypermart.net/
ここのショートメッセージっていうのなんですが
この前も質問したんですがやっぱり分からなかったです。

1.ソースのダウンロード
2.index.cgi の最上部のPerlのパスを設定する ex) #!/usr/local/bin/perl
3.各CGIの変数設定 index.cgi (ヒント)
中身を見ながら適切に設定してください。
4.サーバにUPしたあと上記の『ファイル構成』に記したパーミッション値に属性変更
ここでskin.htmlっていうのは元あったWebのトップページでよい。
skin.html内にShortmessa...続きを読む

Aベストアンサー

index.cgiにアクセスするということは、
(この場合CGIなのでサーバを介して)ブラウザでファイルを見ることです。

アップしたURLが
http://www.provider.ne.jp/~yourID/
だとしたら、
http://www.provider.ne.jp/~yourID/index.cgi

にブラウザでアクセスすればよいです。

Q詳しく解説お願いします

以前 http://oshiete.goo.ne.jp/qa/7775291.html

このような事を言われました

------
クッキーセット直後、同一プロセスからクッキーの環境変数を参照することは無意味です。クッキーはブラウザ側に送られても、環境変数はサーバ側にあって自動更新はされません。CGIプロセスの途中でサーバ側からクライアントのデータぶっこ抜き放題ならセキュリティもクソもあったもんじゃないでしょう。
あくまでも「クライアントの指示」でサーバ側のプロセス開始オーダーがあったときのみ必要なデータをクライアント側が送信し、サーバはそこからプロセスに必要なデータから環境変数群を構成してプログラムを開始するのです。
セットしたクッキーを参照したいなら、そのプロセス終了後に新たなプロセス(プログラムを別にする)で参照するしかないでしょう。

要するにクッキーを食わせるプログラムと、クッキーを参照するプログラムは分けて起動すること。
-----

この説明で何がいけなかったとかではどうすればいいかろかはある程度分かったのですが

<<あくまでも「クライアントの指示」でサーバ側のプロセス開始オーダーがあったときのみ必要なデータをクライアント側が送信し、サーバはそこからプロセスに必要なデータから環境変数群を構成してプログラムを開始するのです。

ここら辺をもう少し分かりやすく解説していただけませんか?
もしくは分かりやすく書かれたサイトを教えていただけませんか?


<<セットしたクッキーを参照したいなら、そのプロセス終了後に新たなプロセス(プログラムを別にする)で参照するしかないでしょう。

要するにクッキーを食わせるプログラムと、クッキーを参照するプログラムは分けて起動すること

後これは具体的にどのようにすれば分けて起動できますか?
というよりも起動するのは一つまでする方法しかしらないのですが同時に起動するにはどうしたらできますか?

この部分が理解できて問題を解決できれば一気に作りたいものが作れるので是非解説お願いします

以前 http://oshiete.goo.ne.jp/qa/7775291.html

このような事を言われました

------
クッキーセット直後、同一プロセスからクッキーの環境変数を参照することは無意味です。クッキーはブラウザ側に送られても、環境変数はサーバ側にあって自動更新はされません。CGIプロセスの途中でサーバ側からクライアントのデータぶっこ抜き放題ならセキュリティもクソもあったもんじゃないでしょう。
あくまでも「クライアントの指示」でサーバ側のプロセス開始オーダーがあったときのみ必要なデータをクライアント側...続きを読む

Aベストアンサー

> <<あくまでも「クライアントの指示」でサーバ側のプロセス開始オーダーがあったときのみ必要なデータをクライアント側が送信し、サーバはそこからプロセスに必要なデータから環境変数群を構成してプログラムを開始するのです。
> ここら辺をもう少し分かりやすく解説していただけませんか?
> もしくは分かりやすく書かれたサイトを教えていただけませんか?

まず、Webサーバ側(以下サーバ側)とWebページを見たい側(以下クライアント側)に分けて考えましょう。

普段はサーバ側は待ちの状態にあります。
クライアント側からページを見せろと要求があれば、その要求が真っ当なら、サーバ側はそのデータをクライアント側に返信します。
Webサーバというのは要求のあったデータを返信するだけの単純な仕組みに過ぎません。

次に、クライアント側が要求とともに送信するデータに応じて、サーバ側で返信内容を加工して動的なデータをクライアント側に返信するようなケースでは
サーバ側では返信の前にクライアント側から送信されてきた内容を解釈して、それを元に処理を行い結果を返信する
このとき、WebサーバはOSの標準入出力(cでいうところのstdio)を通して指定プログラムの実行を要求します(Webサーバが直接実行するわけではないことに注意してください。動作するプログラムはOS環境下でWebサーバというユーザ権限で実行されるのです)。
この仕組みをCGIといいます。

このようにWebサーバはクライアントからの要求を単純に処理して返信するだけ(タレ流し)の仕組みで、基本的にサーバ側からクライアント側に対してなにかを行うものではありません。

タレ流されてくる先頭部分には、後にタレ流すデータの種類(HTML/画像/ベタテキスト/音楽・・・etc)とか、サイズ、ブラウザへの指示(キャッシュを利用するしないとか)、そしてcookie情報なんかがまとめてあって改行連続2回のその後に、HTMLデータやなんかが送られてくる。
ここで送られてくるcookieに注目すると、ブラウザは受け取ってcookieエリアに保存するだけでおしまい。
サーバ側に対してその情報からアクションを起こすわけではないのです。

今度は少し戻って、サーバ側からの視点で見ると、クライアント側からCGIの要求があれば、要求とともに送られてくる各種情報、返信用IPアドレス(どこに返信するかわからないと困りますよね)、返信用ポート番号(同じマシンでブラウザ2個表示して同時に同じサイトに要求してもデータがごっちゃにならないように)、cookie情報(当然ドメインやパスが一致して期限切れでないもの)、フォームやURLのメソッドデータなどなどさまざまな情報を受信し終わった後に、処理を開始します。
受信した情報はその呼ばれたCGI専用のプロセスに環境変数や標準入力バッファを構築してシステムに実行オーダーを出します。
実行時の標準出力データを出力バッファに蓄えてクライアント側にヘッダ情報とともに垂れ流し終了です。

呼び出されるプログラムは、クライアント側のcookieを直接参照するわけではなく、クライアント側から初期呼び出し時に能動的に送られてきた情報を元に構築された環境変数を介して参照するのです。
サーバ側からのデータで書き込まれたcookieはサーバ側から直後に読み出すことは不可能なのです。なぜなら環境変数は処理前の初期状態をキープしているからです。
また、クライアント側でcookieが正常に書き込まれたかどうかなんていちいち知ったこっちゃないのです。それはクライアント側の問題であってサーバ側の問題ではないからです。
cookie情報はクライアント側にあって、サーバ側にあるわけじゃないのです。

たとえ話は誤解を生む可能性がありますがあえていうと
この通信は電話ではなく手紙だと思ってください。

1.このプログラムを実行して結果をくれと手紙を出す
2.これが結果だと返信がくる。その中にはcookie情報があるので憶えておけと書いてある
3.クッキーを見せるプログラムを実行して結果をくれと2度目の手紙を出す(じつはその手紙にはいろんなものと一緒にcookie情報が書いてある)
4.その手紙からcookieを判別して、これがお前のcookieだと返信がくる。


> <<セットしたクッキーを参照したいなら、そのプロセス終了後に新たなプロセス(プログラムを別にする)で参照するしかないでしょう。
>
> 要するにクッキーを食わせるプログラムと、クッキーを参照するプログラムは分けて起動すること
>
> 後これは具体的にどのようにすれば分けて起動できますか?
> というよりも起動するのは一つまでする方法しかしらないのですが同時に起動するにはどうしたらできますか?

要するに、「クッキーを書き込むCGI」と「クッキーを読み出すCGI」を別々に作ってブラウザから順にアクセスすればいいのです。

でも、直後に確認したいだけならサーバ側でCGI実行後、クライアントスクリプトを動作させてブラウザ上で表示すれば確認は可能です。
要するに「CGIでクッキー食わせて」から、そのCGIからブラウザに表示させるHTML内に「クッキーを読み込んで表示させるJavaScript」を組み込めばよいのです。

出力するHTMLの例
<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>クッキー</title>
</head>
<body>
<p>クッキー一覧(以下はブラウザ側で実行される)</p>
<script language="JavaScript"> document.write(document.cookie); </script>
</body>
</html>

長文失礼しました。

> <<あくまでも「クライアントの指示」でサーバ側のプロセス開始オーダーがあったときのみ必要なデータをクライアント側が送信し、サーバはそこからプロセスに必要なデータから環境変数群を構成してプログラムを開始するのです。
> ここら辺をもう少し分かりやすく解説していただけませんか?
> もしくは分かりやすく書かれたサイトを教えていただけませんか?

まず、Webサーバ側(以下サーバ側)とWebページを見たい側(以下クライアント側)に分けて考えましょう。

普段はサーバ側は待ちの状態にあります...続きを読む

QレンタルCGIが動きません。アドバイスお願いします!

CGI初心者です。
レンタルのCGIをテキストモードでCGI可のサーバーにアップしました。

Internal Server Errorと表示され、動いてくれません。
パスは#!/usr/bin/perl
パーミッションはスクリプトが755でその他が644です。

何でも結構ですのでアドバイスをお願い致します。

Aベストアンサー

#1~#3です。
試しに「DesignForm - Version 3.8 -」をダウンロードしてみました。

CGIなどのファイルは何で開けていらっしゃいますか?
Wordやメモ帳で開くのはCGIのスクリプト構造上よくありませんので
「EmEditor Free」http://www.vector.co.jp/soft/dl/winnt/writing/se047993.html
などを利用されることをお薦めします。
他のテキストエディタソフトを使用なさりたい場合はは下記よりどうぞ。
http://www.forest.impress.co.jp/lib/offc/document/txteditor/

「index.cgi」ファイルは特に触ることが無いのでこのままでいいと思います。
Parlのパスは「#!/usr/bin/perl」でしたので変更する必要はありません。

「jcode.pl」はダウンロードされたものは「v 2.0」ですので古いものです。
今では「v 2.13」が出ていますので下記のページにアクセスして下さい。
http://srekcah.org/jcode/jcode.pl-2.13
その後ソースを表示して「jcode.plという名前で保存」されると良いです。

sendmailのパス設定は「preset.cgi」を開くと
$sendmail = '/usr/sbin/sendmail'; # sendmailのパス
という部分があります。さくらインターネットさんでは変更なく使えるようです。

@mailtos = ('test@xx.xx.xx','etc@xx.xx.xx');
を一つメールのみで受信される場合は例として('a@mail.goo.ne.jp');としてください。

後は解凍した「designform」の中にもうひとつ「designform」がありますので
その中のファイルを下記の例を参考になさってアップロードしてください。
CGIの設置場所例:/home/アカウント名/​www/designform/
パーミッションはGNBさんの説明通りになさってください。

個人的な意見で恐縮ですが、KENT WEBさんの「PostMail」がかなり簡単に設置できます。
チェックモードで起動しエラーが出ているかどうかが判りますし
サイトでの解説もかなり詳しく書かれていらっしゃいます。

#1~#3です。
試しに「DesignForm - Version 3.8 -」をダウンロードしてみました。

CGIなどのファイルは何で開けていらっしゃいますか?
Wordやメモ帳で開くのはCGIのスクリプト構造上よくありませんので
「EmEditor Free」http://www.vector.co.jp/soft/dl/winnt/writing/se047993.html
などを利用されることをお薦めします。
他のテキストエディタソフトを使用なさりたい場合はは下記よりどうぞ。
http://www.forest.impress.co.jp/lib/offc/document/txteditor/

「index.cgi」ファイルは特に触るこ...続きを読む


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

おすすめ情報