68user's page 掲示板

Prev< No. 3766〜3800> Next  [最新発言に戻る] [過去ログ一覧]
No. 3766 # 初心者 2004/06/10 (木) 23:15:30
unix上でzip圧縮した際にパスワードを設定したいのですが、
どなたかご存知な方いらっしゃいいますか?
windowsだと基本的にzip圧縮の際にパスワードを設定できるように
なっているのですが・・・。
一応manコマンドで調べると-eという暗号化のオプションが存在する
ようなのですが出来ません。
環境はsolarisです。よろしくお願いします。

No. 3767 # hash 2004/06/11 (金) 00:08:24
>>3754 zsh
> クライアントからホスト名でアクセスするだけだったら
> hostsファイルに指定してやれば良い気がします。

お返事ありがとうございます。
全クライアント(Win2000)のhostsファイルを変更するのは
大変(そんなに数はないのですが)なのでDNSにローカルのbindを指定して使っています。

ということは、bindのゾーン設定が悪いんですね。
とりあえず切り分けができたのでもう少し試行錯誤してみます。
報告できるようなことがあれば、また報告させていただきたいと思います。

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

No. 3768 # hash 2004/06/11 (金) 00:27:09
>>3766 初心者

$zip -e out.zip target.o
Enter password:
Verify password:
    adding: target.o (stored 80%)

で出来ました。
RedHatですが、同じだと思います。

No. 3769 # 68user 2004/06/11 (金) 00:56:56
>>3766 初心者
> unix上でzip圧縮した際にパスワードを設定したいのですが、
Solaris 標準の zip は、おそらく暗号化ライブラリなしで
コンパイルされていると思うんですよね。たぶん。

FreeBSD の ports
        http://www.jp.freebsd.org/cgi/cvsweb.cgi/ports/archivers/zip/Makefile?rev=1.29
を参考に、zcrypt29-exportable.zip を持ってきたり、
-DUSE_CRYPT を指定したりして自分でソースからコンパイル
すれば大丈夫でしょう。

もしかしたら
    SunSite
        http://sunsite.tus.ac.jp/sun/solbin/
のバイナリパッケージが暗号化機能付きでコンパイルされて
いるかもしれません (試していません)。

No. 3770 # zsh 2004/06/11 (金) 17:04:11
>>3769 68user
Solaris標準・SunSiteのバイナリパッケージ共に暗号機能なしのようです。

No. 3771 # den 2004/06/13 (日) 18:34:51
Servlet を C の exe からソケットを使って起動させようとしているのですが
うまく起動しません。

どなたかわかる方はいませんか?

No. 3772 # 68user 2004/06/13 (日) 19:44:10
>>3771 den
情報不足です。

http://www.hyuki.com/writing/techask.html を読んでください。

No. 3773 # 68user 2004/06/13 (日) 22:56:01
日記。

今日は
    http://www.amazon.co.jp/exec/obidos/ASIN/475614389X/qid%3D1087134585/249-1275008-5298706
        プログラミングテクニック - UNIXコマンドのソースコードにみる実践プログラミング手法
        (UNIX MAGAZINE COLLECTION)
を買いました。UNIX MAGAZINE に連載されていた記事をそのまま
まとめただけですが、これでたまっていた UNIX MAGAZINE を捨て
られるので、部屋が狭い人にはお勧めです。

ただ、この人の書く文章にはおもしろみのかけらもなく、全く読む
気にならないのが残念なところ。プログラミングって こんなに
つまらないものだったかなぁ、と思えることうけあいです。

No. 3774 # 68user 2004/06/14 (月) 02:54:44
日記 2。

久々に whois.cgi なぞを触っていたら、FreeBSD 5.2.1-RELEASE の
/usr/bin/whois は、いちいち NIC (Network Information Center) を
指定しなくても、
    % whois u-tokyo.ac.jp
で情報を参照できる。昔は
    % whois -h whois.nic.ad.jp u-tokyo.ac.jp
としなくてはならなかったはずなのに何故? と思ってソースを読んだ
結果、
    xxx.whois-servers.net
    (例えば TLD が jp だったら jp.whois-servers.net)。
の CNAME を引っ張ると、whois.nic.ad.jp が返ってくるので、
そこに再接続すればよいらしい。

あるいは
    % whois -h jp.whois-servers.net u-tokyo.ac.jp
とすると whois-servers.net が proxy となって whois.nic.ad.jp
から勝手に情報を取得してくれるようだ。

whois-servers.net に対応したのは、FreeBSD 4.0-RELEASE・
FreeBSD 3.4-RELEASE から。

http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/whois/whois.c

No. 3775 # kiyo 2004/06/14 (月) 13:46:37
dateコマンドでは、最大何日前までの日付計算が行えるのでしょうか?
教えてください。

No. 3776 # yoko 2004/06/14 (月) 15:22:44
Solaris(UNIX)でフォルダの削除が行えません。
rmdir フォルダ名のコマンドでは「ディレクトリが存在しません。」
のメッセージがでます。CPコマンドで同じフォルダを同じ場所にコピーすると
同じ名前のファルダが2つできてしまいます。
このフォルダの消し方をどなたか教えていただけないでしょうか。

No. 3777 # TSURU 2004/06/14 (月) 17:21:18
>>3776 yoko

こんばんは。

rm -r <ディレクトリ名>

で削除できませんか?

No. 3778 # den 2004/06/14 (月) 21:42:32
ソースを載せます。

//***************************************************************
// From the book "Win32 System Services: The Heart of Windows 95
// and Windows NT"
// by Marshall Brain
// Published by Prentice Hall
//
// Copyright 1995, by Prentice Hall.
//
// This code implements a TCP sender.
//***************************************************************

// ssipsend.cpp

#include <windows.h>
#include <iostream.h>
#include <winsock.h>

#define NO_FLAGS_SET 0

#define PORT (u_short) 8080
#define DEST_IP_ADDR "127.0.0.1"

#define MAXBUFLEN 256

INT main(VOID)
{
    WSADATA Data;
    SOCKADDR_IN destSockAddr;
    SOCKET destSocket;
    unsigned long destAddr;
    int status;
    int numsnt;
    char toSendtxt[3][256];

    int numrcv;
    char buffer[MAXBUFLEN];

    strcpy( toSendtxt[0], "GET http://localhost:8080/example00/HitTime?userid=1207&date=20004/06/11%2008:30:00 HTTP/1.1\r\n" );
    strcpy( toSendtxt[1], "Host: localhost:8080\r\n" );
    strcpy( toSendtxt[2], "\r\n" );

    /* initialize the Windows Socket DLL */
    status=WSAStartup(MAKEWORD(1, 1), &Data);
    if (status != 0)
        cerr << "ERROR: WSAStartup unsuccessful"
            << endl;

    /* convert IP address into in_addr form */
    destAddr=inet_addr(DEST_IP_ADDR);
    /* copy destAddr into sockaddr_in structure */
    memcpy(&destSockAddr.sin_addr,
        &destAddr, sizeof(destAddr));
    /* specify the port portion of the address */
    destSockAddr.sin_port=htons(PORT);
    /* specify the address family as Internet */
    destSockAddr.sin_family=AF_INET;

    /* create a socket */
    destSocket=socket(AF_INET, SOCK_STREAM, 0);
    if (destSocket == INVALID_SOCKET)
    {
        cerr << "ERROR: socket unsuccessful" << endl;
        status=WSACleanup();
        if (status == SOCKET_ERROR)
            cerr << "ERROR: WSACleanup unsuccessful"
                << endl;
        return(1);
    }

    cout << "Trying to connect to IP Address: "
        << DEST_IP_ADDR << endl;

    /* connect to the server */
    status=connect(destSocket,
        (LPSOCKADDR) &destSockAddr,
        sizeof(destSockAddr));
    if (status == SOCKET_ERROR)
    {
        cerr << "ERROR: connect unsuccessful" << endl;
        status=closesocket(destSocket);
        if (status == SOCKET_ERROR)
            cerr << "ERROR: closesocket unsuccessful"
                << endl;
        status=WSACleanup();
        if (status == SOCKET_ERROR)
            cerr << "ERROR: WSACleanup unsuccessful"
                << endl;
        return(1);
    }

    cout << "Connected..." << endl;

    int idx = 0;
    while(1)
    {
    Sleep(1000);
        cout << "Sending..." << endl;
        numsnt=send(destSocket, toSendtxt[idx],
            strlen(toSendtxt[idx]) + 1, NO_FLAGS_SET);
        if (numsnt != (int)strlen(toSendtxt[idx]) + 1)
        {
            cout << "Connection terminated" << endl;
            status=closesocket(destSocket);
            if (status == SOCKET_ERROR)
                cerr << "ERROR: closesocket unsuccessful"
                    << endl;
            status=WSACleanup();
            if (status == SOCKET_ERROR)
                cerr << "ERROR: WSACleanup unsuccessful"
                    << endl;
            return(1);
        }
    idx++;
    if(idx>2){
        break;
    }

    /* Wait before sending the message again */
    //Sleep(4800);
    } /* while */

    return 0;
}

それほど難しいことはしていないはずなのですが...
よろしくお願いします。

No. 3779 # TSURU 2004/06/14 (月) 23:20:59
>> 3771
Servletって、JavaのServletのことですよね?
なぜ、わざわざCのプログラムからServletを起動する必要があるのですか?
そこが分かりません。

No. 3780 # とーりすがり 2004/06/15 (火) 00:03:33
>>3776 yoko
ディレクトリを作成した時にディレクトリ名にスペースとか
コントロールコード(^hとか)が入ってしまったってことはないですか?

とりあえず そのディレクトリ上位の階層でls -l > hoge.lst
としてvi hoge.lst を表示もしくはod -x hoge.lstあたりで
確認されてみてはいかがでしょうか?
外してしたらスミマセン
  

No. 3781 # den 2004/06/15 (火) 08:41:41
>> 3779 TSURU

なぜ、わざわざといわれるとどう答えていいのかわからないのですが。
サーブレットは、起動されるとデータベースに時刻を登録するようにできています。
それでタイムカードのように出社時間と退社時間を記録してゆこうとしているのです。
そのときにわざわざブラウザを立ち上げてフォームのボタンを押してサーブレットを
起動するのは面倒らしいので、スタートアップにEXEをと登録して、
パソコンが起動するとサーブレットを呼び出すようにしようとしています。

という回答でよいでしょうか。
よろしくお願いします。

No. 3782 # den 2004/06/15 (火) 08:44:36
>> 3779 TSURU

ちなみになぜ、Cでやろうとしているかというと、Java だと各パソコンに
JREをインストールしてやらなければならないかなと思っているので
それが面倒なのでCを使おうとしています。

No. 3783 # 68user 2004/06/15 (火) 11:49:45
>>3775 kiyo
> dateコマンドでは、最大何日前までの日付計算が行えるのでしょうか?
FreeBSD の date は 1900 年まででした。他の OS でも、time_t の仕組みに
のっけているなら、同じでしょうね。てゆーか OS 名くらい書きましょうね。

>>3776 yoko
> Solaris(UNIX)でフォルダの削除が行えません。
ファイルの特定方法もいろいろあるので参考にしてください。
    http://www.jp.freebsd.org/QandA/HTML/1671.html

>>3778 den
> ソースを載せます。
どこでどういうふうにエラーになるんですか? 「うまく起動しません」
とはどういう意味ですか? OS は? ブラウザで該当 URL を見ると正しく
記録されるのですか?

…などという点が情報不足なのですよ。期待した結果と実際の結果を書けと
    http://www.hyuki.com/writing/techask.html
にもあったはずです。

ソースをざっと見た感じでは怪しげなところはないように見えますが、
わたしの手元に Windows 開発環境がなくコンパイルできないので、
どなたかコンパイルして検証できる環境をお持ちの方がいらっしゃい
ましたらよろしくお願いします。

>>3779 TSURU
> なぜ、わざわざCのプログラムからServletを起動する必要があるのですか?
C で HTTP クライアントを作るって話なので、別に変ではないです。

No. 3784 # den 2004/06/15 (火) 13:24:16
OS は、クライアント、サーバともに Windows 2000 Professtional 又は Windows XP Professtional です。
Tomcat は、Tomcat/4.1.27 です。

サーブレットに動作したことがわかるようにコンソールへの出力が組み込んであるので
起動したことは、コンソールを見るとわかるようになっています。

ブラウザでサーブレットの URL をたたいた場合は、ちゃんとコンソールへの
出力がでて、起動していることがわかります。

No. 3785 # den 2004/06/15 (火) 13:30:15
>> 3783

HTTP は、ここで改行しないとダメだとかこういう順番でテキストを
送らないとダメだとかどういうルールがあるのでしょうか?

No. 3786 # den 2004/06/15 (火) 15:18:43
>> 3783

改行を入れるようにしたらレスポンスは返すようになってのですが、
やはりサーブレットは起動しません。

OS は、サーバ、クライアントともに Windows 2000 Professtional か Windows XP Professtional です。
Tomcat は、Apache Tomcat/4.1.27 です。

起動するというのは、コンソールに文字が出力されるということです。

ブラウザで同じことをした場合は、ちゃんと起動します。

No. 3787 # den 2004/06/15 (火) 15:19:42
>> 3783

レスポンスは、

HTTP/1.1 505 HTTP Version Not Supported
Content-Type: text/plain
Date: Tue, 15 Jun 2004 06:24:28 GMT
Server: Apache Coyote/1.0
Connection: close

・・・・・・

です。

No. 3788 # den 2004/06/15 (火) 15:30:52
>> 3783

リクエストの2行目の

strcpy( toSendtxt[1], "Host: localhost:8080" );

を削除したらうまく行きました。
どうもありがとうございました。

No. 3789 # 68user 2004/06/15 (火) 15:31:24
>>3786 den
> 改行を入れるようにしたらレスポンスは返すようになってのですが、
全くついていけません。具体的にどこをどういうふうに修正したんですか?

ふと思いましたが、
>>3778 den
> numsnt=send(destSocket, toSendtxt[idx],
> strlen(toSendtxt[idx]) + 1, NO_FLAGS_SET);
この +1 は不要では?

No. 3790 # どら 2004/06/15 (火) 15:34:48
はじめまして。まだ初めて1ヶ月の初心者です。
すいませんがどうしてもエラーメッセージの意味がわからないので、教えていただかないでしょうか?

OSはSolarisの5.8です。

--------------------------------------------------------------------------------
ucbcc: 警告: ld が起動される場合は、オプション -YP,:/usr/ucblib:/opt/SUNWspro/WS
6U2/bin/../lib:/opt/SUNWspro/WS6U2/bin:/usr/ccs/lib:/usr/lib は ld に渡されます
。それ以外は無視されます
ld: 警告: オプション -YP が複数回存在します。最初の設定で行います。
--------------------------------------------------------------------------------

というものでした。特にldというものがいまいち理解できないのですが、ぜひとも教えてただければと思います。よろしくお願いします。

No. 3791 # den 2004/06/15 (火) 18:28:48
>> 3786

HTTP 1.0 以降では、ヘッダと本文を空行で分けているらしく、その空行が
ないためにレスポンスがないことがわかりました。

その後、HTTP Version Not Supported というレスポンスが返されるだけ
だったのですが、リクエストを "POST <<URL>> HTTP1.1" と空行だけに
したところちゃんとしたレスポンスを返すようになりました。

    

No. 3792 # TSURU 2004/06/15 (火) 20:48:47
>>3783 68user
>C で HTTP クライアントを作るって話なので、別に変ではないです。
いえ、僕は、サーバ上にある、Servletのプロセスを起動する処理を
Cのプログラムの中で実装する話だと思ってしまったので、
おかしいと思ったんですよ。

No. 3793 # TSURU 2004/06/15 (火) 21:00:07
denさんへ

根本的な話をしていいですか?

>>3781 den
の発言を読むかぎりでは、denさんのやりたいことは、
出社時間と退社時間を記録したいということですよね。
それだけのために、なぜサーブレットが必要になるんですか?
そこが分からないんですよ。
出社時間と退社時間を記録するだけだったら、別にサーブレット
を使わなくても、方法はいくらでもありますよね。
どうしてもサーブレットじゃないとだめなんですか?

でも、もうできたんですよね。
だったら、無理に他の方法でやれとは言いませんが、
ただ気になったので、書いてみました。

No. 3794 # TSURU 2004/06/15 (火) 21:57:40
denさんへ

>>3793 TSURU
の書き込みは、べつにあげあしとりとか、意地悪をするために書いたのではありません。
あくまで、単に疑問に思ったことを書いただけですので、くれぐれも誤解なきよう
お願いします。

No. 3795 # den 2004/06/15 (火) 22:24:04
>> 3793

話がややこしくなりそうなのであまり追求しようとは思わないのですが、
サーブレット以外にもやり方はあると思います。

ただインターネットエクスプローラから時間の記録ができたら便利かなと思って
そのようにしました。

でも仮で運用しているとそれでは使いづらいといわれてしまったので、
既存のサーブレットを利用して、C で起動する処理を作って済まそうと
思ったわけです。

サーブレットは、HTTPのリクエストをサーブレットコンテナが受信すれば
起動されるのでサーブレットを起動するには、HTTPクライアントとして
リクエストを送るだけでいいのです。

どうもありがとうございました。

No. 3796 # TSURU 2004/06/15 (火) 22:34:20
>>3795 den
なるほど。
細かい事情は分かりませんが、サーブレットを起動することで
済ませたかった訳ですね。
ゼロから実装するより、既存のもので済ませた方がずっど楽ですからね。
分かりました。

No. 3797 # yoko 2004/06/17 (木) 12:01:46
>>3776 yoko

返事遅くなりました。No.3776 yokoです。
No. 3783 # 68user
No. 3780 # とーりすがり
No. 3777 # TSURU
さん、レスありがとう。
ls -l > hoge.lst で調べるとtest^Mといった(^M)がついていました。
原因は分かりましたが、まだ格闘中です。
rm -r test^M
rm -r 'test^M'
rmdir 'test^M'
でも消えないんですよね。

  rm-r

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 3798 # yoko 2004/06/17 (木) 17:11:08
>>3776 yoko

3776で投稿した yokoです。
rm -r test^Mで消えませんでしたがrm -r test*で消す事ができました。
皆さん、
ありがとうございました。

No. 3799 # kou 2004/06/17 (木) 21:10:06
RSA暗号についての質問なんですが、公開鍵とモジュロは分かるんですよね。
それならば、どういう頻度で循環しているか分かってしまうのではないでしょうか?
循環する頻度と公開鍵があれば秘密鍵も分かってしまうのでは・・?

No. 3800 # 68user 2004/06/17 (木) 23:55:01
>>3790 どら
まず、以下の質問に答えてください。

- gcc をインストールしていますか?
- Sun のコンパイラをインストールしていますか? (/opt/SUNWspro/bin/cc などが存在しますか?)
- which cc と which ld の結果は?
- echo $PATH の結果は?
- 「あなたは」どのコンパイラを使ってコンパイルしようとしていますか? (gcc or Sun の cc)
- 実際に使用されていると思われるのはどのコンパイラですか? また、その根拠は?

>>3797 yoko
> ls -l > hoge.lst で調べるとtest^Mといった(^M)が
> ついていました。
^M はエスケープシーケンス \r (0x0d) です。シェルから
入力する場合は
    sh なら
        % rm test(Ctrl-v Ctrl-m)
    tcsh なら
        % rm test(Ctrl-v Ctrl-j)
とします。csh はどっちだか知りません。

ところでなぜ tcsh は Ctrl-j が ^M で、Ctrl-m が ^J
なんでしょうね?

>>3799 kou
> RSA暗号についての質問なんですが、公開鍵とモジュロは分かるんですよね。
> それならば、どういう頻度で循環しているか分かってしまうのではないでしょうか?
えーと、そういうことはないんですが、何と説明すればよいか
わかりません。

    秘密鍵: e, n
    公開鍵: d, n
    暗号化: (平文^e)%n
    復号化: (暗号文^d)%n

として、今、平文と e が不明だとします。何をどうすると、
何がどういうふうに循環すると考えておられますか?

なお、(平文^e)%n という操作は単射です。つまり異なる平文が
同じ値になることはありません。

もし数学的に厳密な証明を期待しておられるなら、わたしには
その能力がないので、
      http://www.faireal.net/
での質問をお勧めします。

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