memo http://www.coins.tsukuba.ac.jp/~yas/classes/dsys-2002/2003-03-04/index.html http://www-6.ibm.com/jp/developerworks/security/011005/j_s-stun.html |
「ソースを表示してみよう」の結果が 次のように表示されてしまいます。 1: : Content-type: text/html(LF) 2: : (LF) 3: : <html><body bgcolor=white>(LF) 4: : </body></html>(LF) |
>>3217 匿名 ご報告ありがとうございます。ウチに帰ったら対処します。 |
テープメディア(DLTtapeIV)についての質問です。 DLTtapeIVに退避させた、圧縮後のデータの容量を調べる方法がわからず大変困っています。 テープ内の圧縮後データ容量を確認するコマンド、方法があれば教えて下さい。 なにとぞ、なにとぞ宜しくお願い致します。 |
クライアントよりフォルダを指定して、その配下全てのファイルをサーバにアップロードすることはservletで可能でしょうか? また、そのフォルダに指定したアクセス権限を付与することは可能でしょうか? |
>>3219 DLT8000user あんまり詳しくないんですが、tar で保存していれば tar tvf …とかいう話でしょうか? cpio は知りません。 じゃなくて、圧縮率の話? >>3220 匿名 servlet でというか、HTML 的にはフォルダまるごとのアップロードは 無理だと思います。やるなら Java Applet とか DirectX とかいう 話になるかと。 アクセス権限については環境依存なので、java.lang.Runtime#exec() で設定でしょうか。 |
>>3218 68user > ウチに帰ったら対処します。 と言いつつ忘れていました。そしてここ数日、このサーバが 落ちていたので、まだ対処できていません。今週末にはなんとか…。 |
ネットワークプログラミングの基礎のところで、 select や fork を「マルチスレッド」と書かれているようですが、 少し違うのではないでしょうか? 新しいスレッドが生成されず、見ため同時に動いていることを マルチスレッドとは言わないと思います。 |
>>3024 テクノソルジャー いまさらですが http-proxy.pl のメモリリークを修正しました。 ご指摘ありがとうございました。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/http-proxy.pl >>3217 匿名 > 「ソースを表示してみよう」の結果が次のように表示されてしまいます。 修正しました。ご指摘ありがとうございました。 >>3223 int > 見ため同時に動いていることをマルチスレッドとは言わないと思います。 「見ため同時に動いていること」を「マルチスレッド」と表記している 本があったのでそれを真似しているんですが、やっぱり変でしょうか (と言ってもその本が見付けられないので、勘違いかも)。 とはいえ、pthread などの「スレッド」と混同しやすいのは確かです。 より適切なの用語は「多重化」でしょうが、個人的にはわかりにくい と感じます (だからあえて「スレッド」としてみた)。 何かよい用語はないでしょうか。 |
初めまして。 突然ですがおききしたいことがあります。 貴HP内にてsocketを使ったHTTPクライアントを作るプログラムを拝見させていただき、独立した環境で同じように組んで実行しましたがホストが存在しないとかえってきました。 これは至極当然なので、$iaddr(指定アドレス)に自分自身(127.0.0.1)を指定して実行しました。 ちなみにANHTTPDが動いています。 perl5でライブラリ上でもsocketは確認しています。 結果はエラーコード500を返すだけでなにも起こりませんでした。 アクセスログもやはりエラーコードは500でした。 自分自身へ試してみて異常がないことを確認できなければ外部に向かって使用するのにはかなり抵抗があったため試してみたことでした。 socketを使っての自分自身へのアクセスはできないのでしょうか? お暇なときでよろしいですのでお返事よろしくおねがいいたします。 |
>何かよい用語はないでしょうか。 プロセス制御,プロセスの多重化,プロセスの生成と複写, マルチプロセス,同時実行プロセス 等は如何でしょう. |
>>3225 ちゃお > 結果はエラーコード500を返すだけでなにも起こりませんでした。 > アクセスログもやはりエラーコードは500でした。 ということは TCP/IP 的には正常に通信できているが、HTTP リクエスト で送信している内容がよくない、という状況と考えます。 あとは - 実行したのが http-client.pl なのか、http-client-2.pl なのか。 - http-client-2.pl であれば、URL に何と入力したのか。 その URL をブラウザで見ると正しく表示されるのか。 - そもそも telnet で成功したのか。その場合は何とタイプしたのか。 と情報がないと何とも言えません。 >>3226 Netboy apache 起動の件、ありがとうございました。 > プロセス制御,プロセスの多重化,プロセスの生成と複写, > マルチプロセス,同時実行プロセス いえ、どういう手法で多重化しているか (プロセス/スレッド/select) は 別として、「見ため同時に動いていること」を何と表記すればよいかが よくわからないのです。 |
>>3227 68user お返事ありがとうございます。 そして言葉足らず失礼いたしました。 >実行したのが http-client.pl なのか、http-client-2.pl なのか 実行したプログラムはhttp-client.plのほうです。 >telnet で成功したのか telnetでは127.0.0.1にポート80で接続できました。 でもそのあとのheloコマンドでは501を返してきました。 またメインマシンがwinMEなので最初の接続(open)はDOSプロンプトからできません。 >URL をブラウザで見ると正しく表示されるのか ブラウザではエラー500を返してきます。 またURLには127.0.0.1/root/http_client.cgiとしています。 拡張子はcgiにしています。 よろしくおねがいします。 |
連続ですいません。 さっきかきこんだあとおもうところがあって拡張子plで試してみました。 plは設定(http.conf)に登録していないのでいつも使っていませんでした。 もちろん今回も実行したあとはブラウザには表示されませんでした。 しかし、アクセスログには200が残っていました。 これって成功したということでいいのでしょうか? |
>>3228 ちゃお > でもそのあとのheloコマンドでは501を返してきました。 わたしの知る限り HELO と言えば SMTP です。そして ポート 80 の先にいるのは HTTP サーバです。HTTP サーバは SMTP を解さないので、エラーになるでしょう。 http-client.pl というのは、要はブラウザの代わりをする プログラムなのですが、その辺は理解されていますか? > またURLには127.0.0.1/root/http_client.cgiとしています。 あなたがブラウザで普通に見られるような URL を試しましょう。 http://127.0.0.1/ で何かコンテンツが表示されるなら、まずそれで試すべきです。 とりあえず http://x68000.startshop.co.jp/~68user/net/http-1.html を読んで、実際に試してみてください。 |
c言語でFTPクライアントのプログラムを組んでいます。 プロトコルやソースは大変参考にさせていただいています。 環境は、TurboLinux 8 serverです。 FTPクライアントのプログラムなのですが、ファイルの転送などは問題なく動作しているのですが、ディレクトリ単位の転送の記述部分がわかりません。何度かコマンドのデバッグモードで試して、RFCなどの記述も呼んでいるのですが。参考になるページがあるのでしたら、教えてください。 また、ファイルかディレクトリかを区別する方法もあればと思い、ご教授よろしくお願いいたします。 |
>>3231 じゅじゅ > ディレクトリ単位の転送 おそらく、ディレクトリを LIST or NLST して、一つ一つ RETR する しかないです。 > ファイルかディレクトリかを区別する方法 ブラウザで anonymous ftp サイトに接続した場合などは、LIST の結果が drwxr-xr-x ならディレクトリ、とするのが一般的だと思います。もっと きっちりやるなら、CWD で移動できたらディレクトリとみなす、とか。 基本的に、ftp は UNIX に依存したくなかったため、この辺はあえて 決めてないのではないかと思っています。 もしディレクトリを判別できるようにするなら、名前付きパイプは? ソケットは? デバイスファイルは? door は? ということになり、 結局 ls の結果をそのまま送る方がよい、と判断されたのではない でしょうか (そしてわたしは、この判断は誤りであると思っています)。 |
簡単なことかもしれませんが、LISTやNLSTをし、続けてファイルの総数やディレクトリの中にあるファイル名を取得することはできるのでしょうか?それらのデータを取得する記述と、また、 >drwxr-xr-x ならディレクトリを取得する 記述が分かりません。 ご教授よろしくお願いいたします。 |
>>3233 じゅじゅ LIST すれば drwxr-xr-x 9 user group 512 Apr 28 2001 dir1 drwxr-xr-x 10 user group 512 Jul 30 2000 dir2 -rw-r--r-- 1 user group 122 Mar 29 2000 file などという結果が返ってくるので、行頭が d である dir1 と dir2 がディレクトリであることがわかります。 さらに LIST dir1 とすれば dir1 の下のファイル・ ディレクトリ一覧が返ってきます。 |
>>3230 68user 前回はちんぷんかんぷんな質問失礼いたしました。 現状ちゃおのマシンにはapacheがインストールされています。 そしてrootにはhtdocsが指定されています。 さらにhtdocsの中にindex.htmlがあります。 まずはtelnetからやりなおしてみました。 コマンドプロンプトから以下のように入力しました。 telnet 127.0.0.1 80 接続成功 GET /index.html HTTP/1.1 HOST:127.0.0.1 Content-type:text/html ソース取得成功してます。 次にコマンドプロンプトからperlを実行します。 (もちろんperlのあるディレクトリには移動済みで、他のHTMLソースを吐き出させることにも成功しています) c:\>perl http_client.pl このときはなにも表示されません。 しかしコードは200を返します。 このときの結果は同じものではないのですか? >http-client.pl というのは、要はブラウザの代わりをする プログラムなのですが、その辺は理解されていますか? つまり$iaddrで指定したアドレスにあるソースを受け取って表示する、 dos上で実行したらbody部分がそのままdosプロンプトに表示されるということでいいんですよね??? それともこのプログラムにさらに引数を与えなければいけないのでしょうか? 長文になってしまい失礼いたしました。 またお時間のあるときにお返事いただければ幸いです。 |
Makefileでのライブラリの定義について はじめまして。solaris初心者のかんすけです。 環境はsparc-solaris8です。 Makefileを作成してみたのですが、自分で作成したライブラリファイルをCCのところでうまく定義できません。実行すると「ファイルが見つかりません」とエラーが表示されます。 この場合、まず何を疑えば良いのでしょうか? 正しいMakefileでのライブラリの定義の仕方を教えてください。 また良いサンプルファイルのURL等ありましたら、紹介してください。 よろしくお願いします。 |
今までの数々の質問大変失礼いたしました。 色々いじっているうちに何故か成功いたしました。 今までありがとうございました。 これからもがんばってください。 |
>>3236 かんすけ デフォルトルールや特殊変数などを全く活用してませんが、 main: main.o hoge.a $(CC) -o $@ $> hoge.a: hoge.a(a.o) hoge.a(b.o) $(AR) ru $@ $> とりあえずこんな感じで実現することは可能です。 |
OpenSSL による https クライアントをちょっとだけ バージョンアップしました (解説は更新なし)。 http://x68000.startshop.co.jp/~68user/net/ssl.html 変更点はこちら。 http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/https-client.c しかし SSL は未だによくわからん…。 |
苦節 3日。やっと rootCA を組み込む方法がわかった。 忘れないうちにメモメモ。 ctx = SSL_CTX_new(ssl_method()); SSL_CTX_load_verify_locations(ctx, "mod_ssl-2.8.9-1.3.26/pkg.sslcfg/ca-bundle.crt", NULL); |
皆様こんにちは。 僕はサーバースペースを借りてHPを作ってます。 いきなりの質問で失礼と存じますが… asciiart.cgiの設置方法を教えていただけないでしょうか? 一応、↑検索をかけてみたのですが見当たりませんでした。 パーミッション asciiart.cgi 755 environment.pl 644(試しに755) …だけではダメなのでしょうか? ヨロシクお願いします。 |
>>3241 ひろ > asciiart.cgiの設置方法を教えていただけないでしょうか? http://x68000.startshop.co.jp/~68user/unix/pickup?netpbm に含まれている giftopnm、ppmtopgm などのコマンド群と、 HTTP クライアントである httptalker.pl が必要です。 netpbm はフリーで配布されています。httptalker.pl はわたしが 作ったものですが、wget や fetch などのフリーなダウンローダで 代用可能です。 申し訳ありませんが、解説しはじめると長くなるので、これ以上の 詳細な解説はご勘弁ください。 関係ないですけど、テーブルアートというのがあります。こっちの方が 表現力が高いので、おもしろいかも。 http://hi.sakura.ne.jp/~okada/table/ |
返答ありがとうございました。 難しいので諦めます。。 asciiart.cgiを設置されてるサイトって有るんですかね?(謎) 因みにasciiart.cgi検索かけても見つかりませんでした。(笑) |
>>3243 ひろ > asciiart.cgiを設置されてるサイトって有るんですかね?(謎) ないと思います。うちの CGI プログラム群は、配付しているのではなく ただ単にソースを公開しているだけなので、わたし以外の人にとっては 設置しづらいでしょう。 |
「ls」を入力すると、カレントディレクトリのファイルやディレクトリが表示されますが、ファイルは表示させずにディレクトリだけを表示させることは出来ますか? ls -d でやってみてもダメでした。 |
>>3245 bebe -d は引数にディレクトリを指定した場合、そのディレクトリの 下でなく、ディレクトリそのものの情報を表示するオプションです。 というわけで、 % ls | grep ^d % find . -type d -maxdepth 1 % find . -type d -maxdepth 1 -ls などなど。 |
>>3246 68user > ls | grep ^d ls -l | grep ^d の間違いでした。 |
ネットワークプログラミングの基礎知識 http://x68000.startshop.co.jp/~68user/net/ に、 暗号化のお話 (1) - 共通鍵暗号方式 http://x68000.startshop.co.jp/~68user/net/crypt-1.html SSL/TLS でアクセスしてみよう (1) (2) http://x68000.startshop.co.jp/~68user/net/ssl-1.html http://x68000.startshop.co.jp/~68user/net/ssl-2.html を追加しました。説明が中途半端ですが、ご容赦を。 cvsweb はこちら http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/?sortby=date |
はじめまして。 ここのページでかなり勉強させてもらっています。 いつの間にかDSNクライアント作成講座もできてるみたい なので、時間があったら読ませてもらいます。 ところで、DNSを使ってみよう でsend関数がでてきましたが、 あれはTCPでは使えないのでしょうか? UDPはコネクションレス型で、TCPはコネクション型なのは解ってますが・・・。 もし使える方法があれば教えてください。 |
はじめまして、terapadと申します。 いくつかのプログラムからarコマンドを用いて、ライブラリを作成するのですが、 スタティックリンク版とダイナミックリンク版を作成したいのです。 ar -r test.a aaa.o bbb.o ccc.o 現在、上記のようなコマンドを用いているのですが、 これはスタティックリンクになるのでしょうか? ダイナミックリンク版を作成するためには、 arコマンドに何かオプションが必要なのでしょうか? 何も分からず恐縮ですが、ご教授お願いします。 |
>>3249 のぐけん。 > ところで、DNSを使ってみよう でsend関数がでてきましたが、 > あれはTCPでは使えないのでしょうか? send(SOCKET, $data, 0); で使えます。 >>3250 terapad > これはスタティックリンクになるのでしょうか? そうです。 > ダイナミックリンク版を作成するためには、 こちらをどうぞ。 http://www.jp.FreeBSD.org/QandA/HTML/401.html |
すいません。 send(SOCKET, $data, 0); の形は、すでにSOCKETがつながっている時ですよね? send(SOCK, MSG, 0, TO); の形では無理でしょうか? |
お返事ありがとうございます。 早速、サンプルプログラムを用意してやってみたところ cc -fpic -o libshared.SO -c shared.c は正常に終了しlibshared.SOが作成されました。 次の cc -shared -Wl, -soname, libshared.so.1 -o libshared.so.1 libshared.SO のところでは下記のようなエラーが出ます。 cc: 1501-218 file libshared.so.1 contains an incorrect file suffix cc: 1501-228 input file libshared.so.1 not found cc: 1501-218 file libshared.SO contains an incorrect file suffix どのように回避したら良いでしょうか? |
すみません。もう一度コマンドコピーして実行してみたところ、 cc -shared -Wl,-soname,libshared.so.1 -o libshared.so.1 libshared.so ld: 0706-012 -h フラグが認識できません。 ld: 0706-012 -a フラグが認識できません。 ld: 0706-005 ファイルが見つからないか、オープンできません: libshared.so.1 ld:open(): このパス名にはファイルまたはディレクトリが存在しません。 このようなメッセージに変わりました。 でも、わかりませんが・・・。 |
>>3252 のぐけん。 > send(SOCK, MSG, 0, TO); > の形では無理でしょうか? は TCP では無理だと思います。connect しないと 3way handshake してくれないです。 ちなみに、ご存知かもしれませんが、UDP では - socket && connect && send(SOCKET, $data, 0); - socket && send(SOCKET, $data, TO); のいずれも可能です。 >>3254 terapad http://www.jp.FreeBSD.org/QandA/HTML/401.html は gcc を使っている場合のやり方です。gcc を使わない のであれば、お使いの cc のマニュアルを読みましょう。 |
UNIX の部屋 http://x68000.startshop.co.jp/~68user/unix/ を更新しました。 |
とってもいまさらですが、 IPアドレスとホスト名 http://x68000.startshop.co.jp/~68user/net/net-1.html に http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=2098 で指摘をいただいた旨追記しました。 |
第2回 UNIX の部屋の検索で一件もヒットしなかった キーワード調査。対象は 2003年1月〜現時点の半年分。 # 第1回: http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=2093-2099 % grep pickup */access.log | grep Nomatch | awk '{print $3}' | sort | uniq -c | sort -nr 1165 useradd 670 sar 526 ls 466 expr 435 ssh 426 scp 320 ftp 311 cp 289 Emacs+Lisp+プログラミング入門 287 Perl/Tk+デスクトップリファレンス 284 snoop 257 ln 256 ユーザー 232 cpio 223 ufsdump 223 rename 206 rsync 192 groupadd 190 iostat 187 logger 186 arp 181 mailx 179 ipcs 177 iconv 168 usradd 167 rm 165 usermod 164 ファイル検索 147 pkginfo 142 df 142 ndd 141 ps 138 fdisk 132 ipconfig 132 chkconfig 127 tree 126 remsh 125 substr 125 nawk 114 jar 113 dbx 112 ulimit 103 userdel 100 htpasswd 94 mv 92 tr 85 バックアップ 85 showrev 85 ioscan 85 chroot 84 pkgrm 84 pdf 82 mpstat 79 patchadd 79 mknod 75 mkfs 74 リダイレクション 73 ufsrestore 70 lpq 69 sdiff 69 prstat 68 wc 67 mtime 66 nmap 64 スペック 63 addgroup 61 pkill 60 unmount 59 配列 59 パーティション 59 sh 59 rcp 58 演算 58 vim 58 lpstat 56 ファイル名変更 56 ファイル 作成 56 cc 56 prtconf 56 gip 56 addusr 55 戻り値 55 ファイル 検索 55 sjtoeuc 55 sftp 55 access 53 strcpy 53 restore 52 空き容量 52 typeset 52 swlist 52 mkfile 52 backup 51 snmp 51 samba 50 sqlplus 49 ファイル名 変更 49 zgip 49 ntpq 49 euctosj 49 bashrc 結論。調査してもそれを反映しないと意味がない。 というわけで、全角英数字でも検索できるようにしました。 |
UNIXの部屋拝見させてもらいました。 すごい詳しくて良かったです。ありがとうございました。 これからも使わせて頂きます。 |
はじめまして。私、MADAGASCARという国の地方都市にすんでおります。私の住んでる町に数年前にISPができました。サーバーの管理は直接しておりませんがLAN内でプログラムを作る事を考えています。サーバー以外は、基本的にWINDOWS系です。ヒントいただければ幸いです。 1つのプログラムは、LAN内でサイバーカフェを運営しておりますが、クライアント端末である特定のプログラムを起動させたときにカウントをしようというものですがこれは何とかなりそうです。 こちらが私にとっては難しいのですが2つ目は、サーバーにダイアルアップでログインしてくるユーザー情報を集計しそのデーターを別のところに送信させたいと思います。 サーバー:MANDRAKE 8.1(WWW、MAIL、DNS稼動) ルーター:CISCO ??? 横山 |
>>3259 -9 ありがとうございます。間違いやわかりにくい点を見付けたら ぜひご指摘ください。 >>3260 bubu > サーバーにダイアルアップでログインしてくるユーザー情報を > 集計しそのデーターを別のところに送信させたいと思います。 ここらへんほとんど知らないんですが一応回答してみます。 ダイアルアップを受けるサーバ (RAS サーバって言うんでしょうか?) は Mandarake ですか? それとも CISCO の機器ですか? 前者であれば mgetty や pppd (ppxp?) あたりが /var/log あたりに ログを残しているかもしれません。また、通常のログインと同じく utmp や wtmp あたりに記録されるはずなので、who などで集計する ことができるはずだと思います。 後者であれば、わかりません。マニュアルを読んでください。 もし RAS サーバを管理する立場にないのであれば、集計する のは無理でしょう。 |
回答ありがとうござました。 ダイアルアップを受けるサーバはMandarakeです。RADIUSというソフト(サーバー?)が起動していて/var/log にlogが記録されます。 情報を探してみましたが、SQLなどを介し、上記のlogファイルを利用してデータベースを作成できる事は分かりましたが、Client MachineからサーバーMachineへアクセスし、データを取ってくるその手法がいまだによく分かりません。お手数とは思いますがご教授していただければ幸いです。 サーバーの第一管理者はリモートで管理をしており、私は第2管理者に非常に近いところにおります。 |
>>3262 bubu > Client MachineからサーバーMachineへアクセスし、データを取って > くるその手法がいまだによく分かりません。 あとは定期的にファイル転送ができればよいのですか? もし そうなら、ftp で転送するのが一番簡単だと思います。 Windows 付属の ftp.exe やフリーの ftp クライアントを使用 してみてはどうでしょうか。 |
ここで相談すべきことじゃないのかもしれませんが、困っています。 PDFを見るためのソフトについて、UNIXにはxpdfなどの軽いツールがあるのに、 WindowsにはAcrobatReaderしかないようなのですが、Windowsにも 他にPDFを見るためのツールはあるのでしょうか? よろしくおねがいいたします。。 |
>>3264 あやの xpdf の Windows 版はありますが、GUI を持たない変換ツール類しか 提供されていないようですね。 http://www.foolabs.com/xpdf/download.html http://www.namazu.org/ml/namazu-win32-users-ja/msg01025.html を読むと、昔は cygwin 版も上記ページに置かれていたように見えますが、 今は置いてありません。自分でコンパイルして、果して動くのかどうか…。 |
AIXのdateコマンドでは「'1 days ago'」のような機能がありません。 どのように1日前の日付を出力すれば良いんでしょうか? date -v-1dってできるんですかね? |
>>3266 UNIX > date -v-1dってできるんですかね? 試してみればいいんじゃないでしょうか。 他には TZ を使うやり方を http://x68000.startshop.co.jp/~68user/unix/pickup?date に書きましたが、AIX の date(1) が期待通り動いてくれるかどうかはわかりません。 |
C言語でsocketを用いたftpクライアント(Asciiモード)を作成し、solaris上で実行したところ、ftpからのリターンメッセージ、およびgetしたファイルの改行コードに『CR』が付加されてしまい、とても困っております。 これは、どのような要因が考えられますでしょうか? よろしくお願いします。 |
>>3268 ma-chan ASCII モードは LF を CRLF に置換するわけで、「CR が付加される」 というのは納得できる結果だと思います。というわけで、何に困って おられるのかよくわかりません。 |
説明が足りなくて申し訳ありません。 改めまして詳細を説明させて頂きます。 テスト環境は、Solarisサーバー2台で、 片方のサーバー上に作成したPGMを置いて、テキストファイルの 送受信を行っています。 扱うテキストファイルは、Solaris上で作成したファイルで、 改行コードは、『LF』のみです。 で、PGM内からASCIIモードでファイルをPUTする分には、 問題ないのですが、 ファイルをGETすると、改行コードに『CR』が付いてしまうという 現象が発生しております。 (ちなみに、コマンドレベルでftpをASCIIモードで実行した場合は、 『CR』は付きませんでした。) 私の認識では、UNIXサーバー側でファイルをGETする場合は、 改行コードに『CR』は付かないと思うのですが... (Windows環境でプログラムを動かしてファイルを受信した場合は、 『CR』が付くと思っています。) この認識自体が間違っていますか? よろしくお願いします。 |
>>3270 ma-chan 理解しました。 ASCII モードというものをより正確に書くと、 あなたがデータを送信するときは、事前に NVT-ASCII に変換 しておいてね とクライアントとサーバが約束すること、です。そして NVT-ASCII に おける改行は CRLF です。 なので、TYPE A で CRLF が送られてくるのは正しいわけで、CRLF を LF に変換するのはクライアント側の仕事なのです。 NVT-ASCII については (読んでませんが) 多分 RFC 854 に書いて あるんじゃないかと思います。 |
はじめまして。いつも参考にさせて頂いてます。 <環境> マシン:UNIX B2000(OKITAK9000) OS:HPーUX Ver.11.0 端末:dtterm 言語:C 上記の環境で、wgetch関数(nodelayモード)を使って、キー入力を受け取る プログラムを作成しているのですが、2つほど質問させてください。 1.キーボードからの入力をロックする方法。 キーを入力してもwgetchがコードを返却しないようにしたい。 2.ある特定のキーについて,wgetchが返却するコードを変更する方法。 たとえば,Insキーが押下されたら0x12を返却するようにしたい。 既出でしたら、申し訳ありません。 よろしくお願い致します。 |
場違いかも知れませんが藁をも掴むつもりで投稿しました。 FreeBSD4.7にてSSHでPg.pmをインストールしようとしています。 SHELLはtcshなのですが、以下の方法でインストールは可能でしょうか? cd src tar zxvf pgsql_perl5-1.9.0.tar.gz cd pgsql_perl5-1.9.0 setenv POSTGRES_INCLUDE "/usr/local/pgsql/include" setenv POSTGRES_LIB "/usr/local/pgsql/lib" perl Makefile.PL make make test root # make install 何かヒントでもいいのでよろしくお願いいたします。 |
>>3272 keijirou curces に詳しくないので回答しなかったのですが、誰か知ってる人 いませんかねぇ。 >>3273 Been > 以下の方法でインストールは可能でしょうか? よさそうに見えますが、とりあえず make test、make -n install まで 試してみればいいんじゃないでしょうか。 てゆーか、一般的には DBI と DBD::Pg モジュールを使うことが 多いと思いますが、あえて Pg なのですか? 2000年で更新止まってるし、RDBS 取り換えたら書き直しだし、あまり いいことはないと思います。 |
はじめまして。kotaroと申します。 さっそくですが、質問をさせていただいてよろしいでしょうか。 C言語において、IPアドレスのみで通信を行うプログラムの作成は可能でしょうか。 socket関数を用いた場合は、 TCPやUDPのトランスポート層の通信になると思いますが、 トランスポート層のプロトコルを解釈せずにIPヘッダーのみで通信を行う、 ルーティングのような機能を実現したいと思っています。 (ネットワークカードは2枚使用し、IPパケットを通過させる仕組み) 突然の質問で申し訳ありませんがよろしくお願いします。 |
>>3275 kotaro > IPアドレスのみで通信を行う IP (インターネットプロトコル) のみで通信を行う、という ことでしょうか。 UNIX なら可能です。Windows なら XP からですね。「raw socket」 などで検索してみてください。 |
ありがとうございます。 socket関数にrawIPを使う機能がありました。 この機能を使えば、raw(生)のIPデータグラムを扱えるので IPヘッダ以外にもTCPやUDPヘッダも自由に付けることができそうです。 |
No3272 で質問させて頂いた者です。同環境でもう1つ質問させてください。 printfで画面出力した文字を、カーソルを文字の先頭に移動させて、再度取得する方法は? カーソルの移動はエスケープシーケンスで行っています。 cursesを利用すれば表示した文字を再度取得することは可能なのですが、エスケープシーケンスを標準出力する方法が判らないのでしかたなくprintfを使っているという状況です。 cursesでエスケープシーケンスを標準出力できればよいのですが。。。 printfの文字取得、もしくはcursesでのエスケープシーケンスの標準出力、 について情報お持ちの方、回答よろしくお願いします。 |
>>3278 keijirou > printfで画面出力した文字を、カーソルを文字の先頭に移動させて、 > 再度取得する方法は? 原理的に無理でしょう。自分で出力した文字を覚えておくくらいしか ない (≒curses の再実装) と思います。 > カーソルを文字の先頭に移動させて これを curses で行えばよいだけのように見えますが、curses では ダメな理由があったりしますか? |
>>3279 68user 早速の回答ありがとうございます。 printfの文字を再度取得することは無理なんですね。 実際にprintfで出力した文字の先頭に、cursesで移動して、文字取得を行ったところ、何も取得できませんでした。 おそらく、cursesが持っているバッファからデータを持って来るようなので、printfの文字は取得されないものと思われます。 扱うデータがエスケープシーケンス入りのデータなので、printfがそのまま使えれば、解析せずに済むかと思い、質問させて頂きました。 また、画面に表示した文字のハードコピーを印刷するのにprintfの文字を再取得しようと考えてました。 もし、なにかよい方法がありましたら、またよろしくお願い致します。 |
>>3280 keijirou > printfの文字を再度取得することは無理なんですね。 そうですね。stdio ライブラリは出力した文字を覚えていませんし、 kterm などの端末エミュレータも受け取った文字を覚えていません ので。 # もし端末エミュレータが覚えていたとしても、アプリが # 端末エミュレータに文字を問い合わせるような仕組みがない。 > 扱うデータがエスケープシーケンス入りのデータなので もし curses がそのようなデータを扱えるとしたら、 1. curses が出力するデータの中身を解析し、エスケープシーケンス取得。 2. 環境変数 TERM を見て、エスケープシーケンスがその端末でどのような 挙動をするのかを調べる。 3. エスケープシーケンスを出力する代わりに、curses のライブラリを叩く。 という機能を持ってないといけないでしょうが、多分そのような 機能はないと思います。 データがエスケープシーケンス入りと言っても、ごく限られた 数種類程度のエスケープシーケンスではないですか? もしそうであれば、自前でデータを解析し、エスケープシーケンスを 出力する代わりに curses のライブラリ関数を呼ぶ、ってのが簡単 そうな気がします。 |
muleで韓国語を入力したまではよかったのですが・・・ 印刷しようとすると化けてしまいます。 コマンドを教えてください。 p.s 「any2ps hangul.tex | lpr -Pstd1pr1」を試してみましたが、 結果は、m2ps: Invalid argument: hangul.tex でした・・・。 |
>>3281 68user 回答ありがとうございます。 やはり、自前でエスケープシーケンスを判断しなければいけないようですね。 その方向で開発をすすめてみます。 いろいろとありがとうございました。 |
>>3282 ゆう 韓国語関連は全く知りませんが、引数ではなく標準入力から 渡さないといけなんじゃないですかね? http://www.tk.airnet.ne.jp/nagae/jp/comp/mule/any2ps.html |
私はネットワークについて初心者で、検索ページからこのサイトを拝見しました。噛み砕いた説明のおかげで理解しやすくとても参考になり、本当に感謝しています。ありがとうございます。 |
シェルの環境変数で宣言している物が,未定義変数だといわれ止ってしまいます。エラーが出ない場合のほうが多いのですが,さっきまで回っていたものが、未定義だと言われてとまってしまい,困っています。 なにか、アドバイスいただければ幸いです。 |
find コマンドで検索するときに、サブディレクトリを検索させない ようにすることは、出来ますか? (例)find / -name *.txt とすると、/配下のディレクトリまで検索してしまいますが、そうでは なくて、/だけを検索させたいのですが‥ ちなみに、Solarisを使用しています。 |
いつもお世話になります 早速ですが、cursesの関数で、現在のカーソル位置を記憶する、および 記憶したカーソル位置の復帰を行う関数は存在するでしょうか? 自前で現在位置を覚えておいて、wmoveで移動する方法しかないのでしょうか? |
UNIXの部屋のリファレンスを求めて初めておじゃましました。 ちょっと気づいたのですが、文字コードの指定がない上にShift_JISや EUCが混在していたりするため、しばしばブラウザが文字コード判定に失敗するようです。 <head>中に<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">等の表記を入れて頂ければうれしく思います。 |
>>3285 umio ありがとうございます。わかりにくい記述などを見つけたらぜひ教えてください。 >>3286 ゆみ > なにか、アドバイスいただければ幸いです。 情報不足です。ここらへん http://www.hyuki.com/writing/techask.html#procedure を読むとよい質問ができるようになると思います。 >>3287 bebe > find コマンドで検索するときに、サブディレクトリを検索させない > ようにすることは、出来ますか? > ちなみに、Solarisを使用しています。 GNU find などなら find / -maxdepth 1 ですが、Solaris の find では できない、と思っています。無理矢理やるなら % find `ls -dF /* | egrep -v '/$'` -type f -name \*.txt とかですが、「そんなの ls /*.txt でいいじゃん」と言われるでしょうね。 >>3288 keijirou > 現在のカーソル位置を記憶する、および記憶したカーソル位置の復帰を > 行う関数は存在するでしょうか? curces の全関数を知っているわけではないですが、多分存在しないんじゃ ないでしょうか。 >>3289 通りすがり > 文字コードの指定がない上にShift_JISやEUCが混在していたりするため、 > しばしばブラウザが文字コード判定に失敗するようです。 対処します (8月中にはなんとか…)。 しかしすべてのページは EUC-JP で統一していると思っていたんですが、 Shift_JIS なページがありましたっけ? |
文字コードなんですけど、いろいろな種類のブラウザで 全く文字化けが起きないようにするには工夫がいるみたいです。 特にApache 1.3系では、 ・ApacheのAddCharset設定で日本語コードを指定しておく ・各ページにMETAタグを入ておく の両方を行わないとだめみたいです。 かなり古い話ですがApache 1.3.12の頃からそうなってます。私の経験では <Directory /> Options FollowSymLinks AllowOverride None AddCharset ISO-2022-JP html AddCharset ISO-2022-JP htm AddCharset ISO-2022-JP shtml AddCharset ISO-2022-JP shtm </Directory> でISO-2022-JPで決めうちしたあと METAタグでShift_JISにしたりEUC-JPにするといい感じでした。 http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html |
と思って実際の設定を調べてみたのですが、普通に AddCharset EUC-JP html 等で済ませてました。これとMETAタグ併用でした。 |
はじめましてperlをはじめて半年レベルです。 貴殿のページでネットの勉強はじめましたが、レンタルサーバーのためtelnetが使えません。参考のplを実行させたいのですがどうすればやれますでしょうか。 初歩的な質問で申し訳ありませんがご指導ください。 |
>>3291 Netboy > ・ApacheのAddCharset設定で日本語コードを指定しておく > ・各ページにMETAタグを入ておく これ、いまだに迷っているのですが、HTTP ヘッダに charset を 含めるのと、meta で書くのとどっちがいいんですかね。 前者だと、ローカルにある HTML ファイルを直接ブラウザで見たりなんか すると、charset がないのでエンコーディングを誤判定してしまいます。 # IE は保存時に meta 埋めてくれますが。 でも meta だと、ファイルのエンコーディングを変えたらいちいち charset を変更しなければいけないのか、って話になりますし。 個人的には、エンコーディングくらいブラウザが自動的に (そして もっと賢く) 判定しろよ、と思います。 > http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html これについては、apache のソースをいじって charset=iso-8859-1 を 削る対応が好きです。と言っても、x68000.startshop.co.jp では やってませんが。 >>3293 kazu > レンタルサーバーのためtelnetが使えません。 ftp でサーバに CGI スクリプトを置いておくだけでいいです。 と言っても、telnet 可能かどうかは作業効率に大きく関わるため、 telnet 可なサーバに乗り換えることをお勧めします。 乗り換えたくないなら、ローカルにも perl や web サーバを入れ、 サーバ側とできるだけ同じ環境を構築して、ローカルでテストが 可能なようにしておくとよいでしょう。 |
>これ、いまだに迷っているのですが、HTTP ヘッダに charset を >含めるのと、meta で書くのとどっちがいいんですかね。 世間ではMETA優先なんじゃないでしょうか。 でもcharsetでiso-8859-1が来るとコード自動判別とMETAタグが 両方とも無効になるブラウザがあるので charsetで何か日本語コードが来るようにしないとだめみたいです。 >でも meta だと、ファイルのエンコーディングを変えたらいちいち >charset を変更しなければいけないのか、って話になりますし。 そういう場合は文字コード判別&タグ入れをスクリプトで自動化して 一括して行うしかないと思います。 全然参考にならなくて済みません。 |
>ftp でサーバに CGI スクリプトを置いておくだけでいいです。 いろいろ試しましたがよく解りませんでした。 ありがとう御座いました。 |
>>3293 kazu >ftp でサーバに CGI スクリプトを置いておくだけでいいです。 いろいろ試してみましたがうまく行きませんでした。 ありがとうございました。 |
UNIXサーバを自動運転で動かしています。 管理する他のクライアントから、起動・シャットダウンの命令を自動で行うように設定してあります。 一昨日から、UNIXサーバを起動する(自動運転)と時刻がシャットダウンした後(直後の時刻)になってしまいます。 端末については、正常な時刻になっています。 特にntpを使用している訳でもありません。 何か考えられる原因はありますでしょうか? また、怪しい部分などがありましたら教えてください。 |
>>3298 user326 > 何か考えられる原因はありますでしょうか? まぁ一番に疑うべきはハード故障なんでしょうね。手動でシャット ダウンしたらどうなるんでしょうか。 > 端末については、正常な時刻になっています。 これは意味がわかりませんでした。端末が時刻を保持している はずはないし、端末からログインして date を叩くと見ると 正常な時刻ということなら、さらに謎な挙動ですね。 |
Netboy さんと startshop さんと両毛インターネットさんの ご好意で使わせていただいておりました このサーバですが、 諸事情により使えなくなりそうです。 いつ使えなくなるかは現時点ではわかっていないのですが、 もしいきなり接続できなくなった場合は、 http://210.249.139.22/ http://home.jp.freebsd.org/~matsu/ のいずれかに移転のお知らせを出します。 が、わたしは現在ネットカフェ経由でないとこのマシンに ログインできないという情けない状況なので、お知らせが 遅れるかもしれませんがご了承ください。 |
とりあえずサーバ自体はしばらく残していただけるそうですが、 ドメインはどうなるかわかりません。 もし急に x68000.startshop.co.jp の名前が引けなくなったら http://210.249.139.22/~68user/ で見てください。 |
初めまして。 ネットワークプログラミングの基本を勉強したいと思い、いつも拝見させていただいています。 今はFTPクライアントを勉強中のところなんですが、どうしてもわからないところがあり、教えていただきたいと思って書き込みます。 68userさんのプログラムを参考にした上で、Passiveモードを使ってFTPサーバのファイルリストを取得するのみのプログラムを組んでいます。 サーバ側にまずUSER、PASSコマンドを送信するところまでは成功しました。(レスポンスを見て確認しました) しかし、その後にPASVコマンドを送っても、サーバから何の応答もありません。 これは何が悪いのでしょうか? ちなみに相手サーバは、インフォシークのレンタルweb用のFTPサーバです。 |
>>3302 ken なんでですかね。仮に PASV 未対応の FTP サーバであっても、 500 Commando not understood 程度は返してくると思います (今どき PASV 未対応はありえないと 思いますが)。 一般的に、あらゆる ftp クライアントにデバッグモードが実装されて いると思うので、まずは今お使いの ftp クライアントで試して、 デバッグ表示を見るのがよいでしょう。 それでも解決しなかったら、telnet で USER・PASS・PASV を叩いた 結果を (ユーザ名・パスワード部分は隠した上で) 見せてください。 あと、もし問題なければ > インフォシークのレンタルweb用のFTPサーバ のホスト名を教えてください。 |
はじめまして、ソケット通信を勉強したくてこちらのHPにたどりつきました。すみませんがひとつ質問させてください。 ソケット通信でindex.htmlというファイルの中身は取得できたのですが、同じようにしてindex.cgiというファイルを指定すると The requested URL /index.cgi was not found on this server.<P> という返信が返ってきてしまいます。実行ファイルの場合は何か指定の仕方が違うのでしょうか。 どうぞ宜しくお願い致します。 |
>>3304 SL > 実行ファイルの場合は何か指定の仕方が違うのでしょうか。 同じリクエストの仕方で問題ありません。 http://www.asahi.com/index.html は取得できるのに http://www.asahi.com/index.cgi は取得できないのはなぜか? asahi.com が index.cgi を置いてないからです。 |
>>3304 68user ご回答ありがとうございました。 > asahi.com が index.cgi を置いてないからです。 確かにそのとおりでした。すみません。 自分で置いてテストしたのですが、確認したら指定を間違えていました。 他サイトにあるスクリプトをソケット通信で実行したいと思って、やっているのですが、ブラウザからは実行できるのにソケット通信だとできないので、もしかしたら実行ファイルは他の設定があるのかと考えてしまいました。 ブラウザからは実行できるのにソケット通信では実行できないということはあるのでしょうか。 宜しくお願い致します。 |
>>3306 SL > 他サイトにあるスクリプトをソケット通信で実行したいと思って、 > やっているのですが、ブラウザからは実行できるのにソケット通信 > だとできないので これは index.cgi とは別の問題ですか? どんなリクエストを送っているかを明らかにしていただくのが早い んですが、まぁ想像するに Host ヘッダを送ってない、てなところでは ないかと思いました。 いずれにせよクライアントを作る前に telnet で試してみてください。 |
>>3307 68user ご回答ありがとうございます。 > これは index.cgi とは別の問題ですか? 他のサイトにあるスクリプトが実行できないので、自分のところにスクリプトを置いて実験しているだけですので、困っていることはひとつです。 > んですが、まぁ想像するに Host ヘッダを送ってない、てなところ Hostヘッダというのは送ってないような気がします。68userさんが公開してくださっているソースをそのまま使っただけですので。 ご指摘のhostヘッダの件が問題点のような気がします。 http://www.shop-link.net/tie-up/test/socket4.txt ソースは上記です。すみませんが見ていただけますか。 宜しくお願い致します。 |
>>3308 SL > ご指摘のhostヘッダの件が問題点のような気がします。 ブラウザで http://219.109.215.211/cgi/gp_new.CGI を見ると not found になるということは、そういうことでしょうね。 http://x68000.startshop.co.jp/~68user/net/http-4.html を見て、 Host ヘッダを追加してみてください。 |
>>3309 68user ありがとうございました。 なんとか動くようになりました。 Hostヘッダを追加して、proxyを使用しないようにしました。 本当にありがとうございました。 また何かありましたら宜しくお願い致します(^^; お礼と言ってはなんですが、メルマガ出してますので、何か宣伝したいことがあったらメールして下さい。<m(_w_)m> |
ご返答ありがとうございました。 えっと…結論から言うと、解決しました(^^; ftpコマンドでもtelnetコマンドでも問題が無かったので、 やはり自分のプログラムに問題があるのだろうと思い、もう一度見直しました。 どうやら、全箇所でレスポンスを受け取ってないのが原因かと思いました。 ぼくは、要所要所でだけ、受け取ったレスポンスを表示させればいいのかと思ってたんですけど、どうやらそれがいけなかったようですね。 それによっていろいろと狂ってきたようです。 レスポンスをすべて表示させたりしたら直りました。 ではでは、ありがとうございましたm(_ _)m |
初めて投稿させていただきます。 UNIXはまだ初心者です。 教えていただきたいことなんですが、今Cシェルを作成しています。 その中で処理終了後にメールを送ろうとしているのですがFrom句(差出人) を任意で変更したいと考えているのですが可能なのでしょうか。 いろいろ調べてみましたがFrom句を変えるようなものはありませんでした。 ご存知のかたがいらっしゃったら教えていただけないでしょうか。 Subjectだけ指定したソースを記載しておきます。 お願いします。 サーバ(username)[1]:/usr/ucb/mail -s "test" test@test.co.jp < test.txt |
>>3312 さんぺい > /usr/ucb/mail -s "test" test@test.co.jp < test.txt test.txt に From: hoge Subject: test To: test@test.co.jp 本文 などとヘッダ類を全部書いて、 % /usr/ucb/mail -t < test.txt でいけると思います。 ただ、エラーが発生したときに戻ってくるメールアドレス (envelope-from) はこれでは書き換わりませんのでご注意を。 もしそれも変更したいなら sendmail を直接呼ぶしかないと 思います。 |
初めて投稿させていただきます。 UNIXは学生の時に整った環境で触っていた程度です。 今、職場の方でUNIXにユーザ追加をし、メールユーザを増やそうとしています。 方法としては、 「vipwコマンド」を使用してユーザを追加しました。 ユーザ自体は追加できたのですが、いざメールを使用してみると、パスワード認証エラーがでてはじかれます。 パスワードがおかしいのかと思い、「passwdコマンド」でパスワードを変更してみたのですが結果は同じでした。 他になにか、設定がいるのでしょうか? ちなみに、「fingerコマンド」を使用して追加したユーザ情報を表示したところ、ユーザは存在すると認識されているようです。 お手数ですが、素人な私にどうかご教示下さい。 |
はじめまして、tomtom といいます。 ソケット通信に興味があり、勉強に励んではや3ヶ月の初心者です。 最近、自分で簡単なクライアントサーバのソケット通信プログラムを 作成してみたのですが、recv関数で受信エラーが発生してしまいます。 メッセージの送信元で、send関数により送信された内容と、 実際にrecv関数で受信した内容を確認してみたところ、きちんと 同じものが受信できているようでした。 そこで、エラー番号から何がおきているのか解析しようとしたのですが、 やり方が間違っているのかエラー番号を何も出力してくれません。 もし、何かお気づきのことがあるようでしたら、 ご指導いただけないでしょうか? 問題の箇所: if(recv($sock_id, $msg, $MAX_BUFF, 0) eq undef){ print "$msg"; print "errno = $!"; } |
度々すみません。 先ほど投稿させていただいたtomtomです。 処理系を書き忘れたので,再度書き込みをさせていただきました。 動かしている処理系は、linuxです。 余談ですが、linux-perlとactive-perlとで、recvやsendなどの システムコールの処理結果は、異なるのでしょうか? (NG時undefを返さず、別のものを返す、、など) クライアントをlinux-perlで、サーバをactive-perl(WinXP)で 起動しおり、サーバの方は、同様のrecv記述で上手く受信できているの で、なにか関係あるのかな、と素人ながら少し気になりました。 以上、度々失礼しました。 |