68user's page 掲示板

Prev< No. 2031〜2043> Next  [最新発言に戻る] [過去ログ一覧]
No. 2031 # rosegarden 2001/06/19 (火) 07:33:34
>>2030 koni
> ワンタイムパスワードについて質問があります。
> MD5 を使い認証をしてくるサーバーに Net::FTP を使用して自動 FTP をし
> たいのですが、うまく行きません。
一口にワンタイムパスワードといってもいくつかあるので、
これだけでは分かりません。
しかし、md5 が云々と言うことから、opie じゃないかと思いますが。
私自身 opie も S/key も使ったことがないので、分かりませんが、
> 個人的には、Net::FTP にこの MD5 を実装するには、上記の USER user をし
> たあと、331 の後の値を、Digest::MD5 のメソッドにかませて、戻り値をパ
> スワードとして送信すれば OK なのか、と考え、やってみたのですがダメそ
> うでした。
多分 password を md5 でハッシュしても駄目でしょう。
ワンタイムパスワードの意味がないです。
CPAN に
http://search.cpan.org/search?mode=module&query=opie
という module があるのでトライしてはどうでしょうか?
とにかく、認証方法がワンタイムパスワードとしか分からないので、
これでうまくいくかどうかは保証できません。
上記サイトの module search で S/key とか MD5 とか MD4 で
それらしきものを検索してはどうですか?

でも良いことを聞きました。ありがとうございました。

# web サーバで ftp 使わせているのですが、
# パスワードの保護がどうにかならないかと
# 頭を抱えていたところです。

No. 2032 # snow [E-mail] 2001/06/20 (水) 13:31:30
はじめまして、C言語でFTPクライントを作ろうとここのページを参照させて
いただいたのですが、以下の部分のソースがよくわかりません。
  
  87: while (1){
  88: char c;
  89: c = getopt(argc, argv, "d");
  90: if ( c == -1 ) break;
  91: switch (c){
  92: case 'd':
  93: debug_flg = 1;
  94: argc--;
  95: argv++;
  96: break;
  97: default:
  98: break;
  99: }
100: }

getoptは調べたところint型だと思うのですが、なぜchar型の変数に値を
代入しているのでしょうか?
また、いろいろ調べてみたんですが、このgetoptで何をしているのかもよく
わかりませんでした。よろしければこの部分についての解説もお願いいたし
ます。m(_ _)m

No. 2033 # 68user 2001/06/20 (水) 14:07:33
>>2030 koni
そういう FTP サーバを使ったことがないので試すこともできないのですが、
これって APOP みたいな感じなんですかね? どこかで公開されている FTP
サーバはないものでしょうか。

>>2032 snow
> getoptは調べたところint型だと思うのですが、なぜchar型の変数に
> 値を代入しているのでしょうか?
これは僕のミスで、正しくは int です。直しておきます。

> このgetoptで何をしているのかもよくわかりませんでした。
引数解析です。
    for ( i=1 ; i<argc ; i++ ){
        if ( argv[i][0] == '-' ){
            switch (argv[i][1]){
                case 'd': debug_flg = 1; break;
            }
        }
    }
みたいなもんですが、自分で書くのもめんどくさいのでライブラリを
使いました。

詳しくはここらへんをどうぞ。
    http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=getopt&dir=jpman-3.1.0%2Fman&sect=3

No. 2034 # 68user 2001/06/20 (水) 14:19:27
>>2033 otp-md5
google 君に教えてもらいました。なるほど、こんな感じの流れになるのか。
    http://www.jaist.ac.jp/~uchida-t/otp/

No. 2035 # snow [E-mail] 2001/06/20 (水) 18:07:04
>>2033 68user

ご回答ありがとうございます。
ですが、このままint型に変えただけだと、エラーがなければCに入るのは
通常「100」ですよね?ということは
case 100: とすれば良いのですよね?
そこを修正して、先ほどのプログラムを例に従って実行してみたのですが、
どうもどこかでループにはまっているようで、ファイルの取得ができません。
う〜ん・・・(汗

No. 2036 # ED 2001/06/21 (木) 05:36:12
>68userさん
http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/view-segabbs.cgi.diff?r1=1.3&r2=1.1&f=h
ロボット検からまだ引っかかるので上記ページを確認したのですが
<head>の部分が</head>になっているのがちょっと変かなっと思ったのですが…どうなんでしょうか。

No. 2037 # 68user 2001/06/21 (木) 10:19:50
>>2035 snow
> エラーがなければCに入るのは通常「100」ですよね?
'd' の character code は 100 なので、100 でも 'd' でも動作は
同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。

> どうもどこかでループにはまっているようで、ファイルの取得ができません。
できる限り余分な部分を削ったソースを見せて下さい。

>>2036 ED
> <head>の部分が</head>になっているのがちょっと変かな
プログラムのソースでなく実物を見て下さい。
    http://X68000.startshop.co.jp/~68user/segabbs/bbs3/vol5/5_97.html

> ロボット検からまだ引っかかるので
META タグを追加してからまだ15日しか経過していません。例えば
google なら、クロール頻度は最低1ヵ月に1回だそうです。
    http://www.google.com/intl/ja/faq.html

No. 2038 # snow [E-mail] 2001/06/21 (木) 17:59:55
>>2037 68user

>> エラーがなければCに入るのは通常「100」ですよね?
>'d' の character code は 100 なので、100 でも 'd' でも動作は
>同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。

そうなんですか。すいません、'd'で大丈夫だとは知りませんでした。

>> どうもどこかでループにはまっているようで、ファイルの取得ができま
>>せん。
>できる限り余分な部分を削ったソースを見せて下さい。

いえ、前回のcの型の変更以外の変更は行っていません。
それでできないのですが・・・

No. 2039 # ED 2001/06/22 (金) 00:17:06
>68useさん
すいません。プログラムのほうしか見てませんでした。

No. 2040 # Moo [E-mail] 2001/06/22 (金) 11:56:36
    お礼です。
    「ネットワークプログラミングの基礎知識」を参考にさせて頂きました。
    とても分かりやすく私にとって大変役に立ちました。
    自分はDOSやWindowsのアプリ、ドライバを作ることが主な仕事ですが
この度、サーバ側のプログラムを作ることになり、こちらのHPを参考に
させていただきました。
    特に「ネットワークプログラミングの基礎知識」と「簡易版コマンド
マニュアル」内のcrontabを読ませていただき、大いに参考になりました。
    普段はC(ドライバ作成用)とDelphi(クライアント側アプリ作成用)
を使っていますが、こちらでPerlの使い方までも教えてもらいました。
    ただただお礼を言うばかりです。

    素晴らしいHPを提供してくださって、こころから感謝申し上げます。
    有り難うございました。

No. 2041 # 68user 2001/06/23 (土) 16:48:47
>>2038 snow
> いえ、前回のcの型の変更以外の変更は行っていません。
> それでできないのですが・・・
動かないというのは、
    http://X68000.startshop.co.jp/~68user/net/c-ftp-1.html
の ftp-client.c ですか? コマンドラインからは何とタイプしましたか?
    % ./ftp-client -d anonymous your@mail.address ftp.jp.FreeBSD.org /pub/FreeBSD/README.TXT
のように -d を付けるとデバッグ情報が表示されますが、どこで
止まっていますか?

もし NAT 環境で試しておられるなら、
    --> PORT 192,168,0,7,9,58
    <-- 500 Illegal PORT range rejected.
などとプライベート IP アドレスを送ってしまい、エラーと
なります。しかしこのプログラムではエラーチェックを行って
いないので、構わず RETR を送ってしまいうためファイルを
取得できません。この点は説明を付けておくべきでしたね。

getopt の件は修正しておきました。ご指摘ありがとうございました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/ftp-client.c

>>2039 ED
というわけで、しばらくお待ち下さい。

>>2040 Moo
どもども。わかりにくい点がありましたら ご指摘お願いします。

No. 2042 # 68user 2001/06/23 (土) 16:59:13
>>2041 68user
> この点は説明を付けておくべきでしたね。
NAT 環境では動かない旨、追加しました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/c-ftp-1.html.diff?r1=1.1&r2=1.2&f=h

No. 2043 # 68user 2001/06/24 (日) 06:39:45
>>1691 紅の猫
>>2023 rosegarden
http-client, http-client-2 のバッファオーバーランの修正と、
bzero,bcopy の説明の追加を行いました。ご指摘ありがとうございました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/http-client.c
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/c-http-1.html

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