68user's page 掲示板

Prev< No. 1940〜1975> Next  [最新発言に戻る] [過去ログ一覧]
No. 1940 # ほいほい 2001/05/10 (木) 16:02:47
>>1939 hsj
たすかりました。
なんかいろいろ見てて混乱してました。
いまみたら、理解しました。どうもすいません・・・・・

No. 1941 # 68user 2001/05/10 (木) 19:49:04
メールでいただいた質問ですが、勉強になったのでこちらでお返事。

> http://x68000.startshop.co.jp/~68user/net/perl4.html
> にも書かれていますが
> Perl4では SOCK_STREAM の値を直接指定しなければならない
> となっておりますが、Perl4の場合
> require 'sys/socket.ph';
> とするのでは無いでしょうか?
> (perl4環境が無く、人づてなので当てずっぽうです。)
なるほど、既に perl4 のラクダ本も手元になく、常用環境には
perl5 しかないので知りませんでした。あのページには perl4
なら sys/socket.ph を使うよう追記しておきます。

> また、サンプルの
> > socket(SOCKET,PF_INET,SOCK_STREAM,0);
> ですが、protocol だけが直接、値を指定しているのは
> 何故でしょうか?
TCP や UDP を使う場合は 0 でよいです。/etc/protocols には
    ip 0 IP # internet protocol, pseudo protocol number
    tcp 6 TCP # transmission control protocol
    udp 17 UDP # user datagram protocol
となっていますので、TCP を使う場合は
    socket(SOCKET, PF_INET, SOCK_STREAM, 6);
    socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
などと明示的に指定してもいいです (可読性と、NIS への対応
という面から見ると後者がよい)。

しかし、アドレスファミリ(PF_*) とソケットタイプ (SOCK_*) の
値が決まると、プロトコルは一意に定まります (なぜかはよく
わかりません)。なので、プロトコルに 0 を指定すれば、自動的に
適切なプロトコルが決定されます。

FreeBSD なら socket(2) の下請け関数である socreate で
    http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/sys/kern/uipc_socket.c?rev=1.97
    int
    socreate(dom, aso, type, proto, p)
                if (proto)
                                prp = pffindproto(dom, proto, type);
                else
                                prp = pffindtype(dom, type);
と検索を行う関数 pffindtype が呼ばれています。

なお、ICMP をしゃべったり、IP データグラムを直接生成する
ために raw ソケットを生成したい場合は 非 0 を指定します。

No. 1942 # 68user 2001/05/10 (木) 20:08:11
>>1939 hsj
> そのファイルをフルパスで指定すれば消せませんか?
> DELE /home/hoge/~hogehoge
> みたいに。
FTP サーバの実装依存でしょうが、FreeBSD 4.3-RELEASE 付属の
ftpd だと、カレントディレクトリに ~hogehoge がある状態で
    > rm ~hogehoge
    DELE ~hogehoge
となり消せました。

ただ、
    > rm ./~hogehoge
    > rm /home/user/~hogehoge
は同じく 4.3-RELEASE 付属の ftp コマンドが何を勘違いしたのか
    RMD ./~hogehoge
    RMD /home/user/~hogehoge
とディレクトリを削除しようとして失敗していました。
    > quote DELE ./~hogehoge
    DELE ./~hogehoge
と、直接 FTP コマンドを送ると OK でした。

UNIX 界では、~hoge が「hoge ユーザのホームディレクトリ」と
解釈されるのは ~ が先頭にあるときのみですから、フルパスで
書いたり ./~hoge などとすればよいです。ただし、
    % perl Makefile.PL INSTALLMAN3DIR=~/install
のように、アプリケーション側 (この場合は ExtUtils::MakeMaker) で
展開してくれるものもあります。

No. 1943 # 68user 2001/05/10 (木) 20:13:49
>>1941 68user
> アドレスファミリ(PF_*)
プロトコルファミリでした。

ちなみに、うちの web ではアドレスファミリ (AF_*) と
プロトコルファミリ (PF_*) の使い分けがいいかげんだった
ような気がします。いまだに違いがよくわからんなぁ。

No. 1944 # ED 2001/05/10 (木) 21:26:36
68userさん>
SEGA BBS以外は問題ないです。
理由はまあ掲示板の中身です…

友人が私の名前を使って書いたものなのですが。

部分的に消去とかはできるのでしょうか?

No. 1945 # CZ 2001/05/11 (金) 00:15:55
>>1939 hsj
>>1942 68user

無事削除できました。回答してくださったお二方に感謝します。

そのサーバ(ProFTPD 1.2.0rc3)では
    >DELE /user/www/~hogehoge.html
    250 DELE command successful.
および
    >DELE ./~hogehoge.html
    250 DELE command successful.
のどちらでも成功しました。

で,実験していて気が付いたのですが,
    >STOR ~hogehoge
    550 ~hogehoge: No such file or directory
はダメで,
    >STOR ~hogehoge.html
    150 Opening ASCII mode data connection for ~hoge.hoge.
    226 Transfer complete.
のように拡張子が付くとOKというのは何だか不思議な仕様だと思いました。

No. 1946 # 68user 2001/05/12 (土) 02:27:40
>>1944 ED
> 友人が私の名前を使って書いたものなのですが。
> 部分的に消去とかはできるのでしょうか?
基本的には消したくありません。それをやり出すと、「恥ずかしいので
昔書いた私の発言を消して」というような要望にまで対応しなければ
いけないからです。

また、これはこっちの都合ですが、消去は手作業になります。URL を
入力してボタン一発で消去というわけにはいかないので、この作業に
時間を取られるようなら SEGA BBS 過去ログの公開は中止となります。

とは言っても、やはり見られては困る場合もあるでしょうし、こちらも
公開している以上はちゃんと管理する責任がありますので、「どうしても
困る」ということであれば消します。

あるいは、goo などのロボットよけを書いておけば OK ということで
あれば、そっちの方向で対処するかもしれません。

というわけで、質問です。
    Q1. できればやりたくないのですが、どうしても消さなければいけませんか?
    Q2. 発言を消さずに、ロボットよけを書くという対処でも OK ですか?

No. 1947 # ED 2001/05/12 (土) 21:31:35
68userさん>
個人的には消してほしいです。
その箇所は
http://x68000.startshop.co.jp/~68user/segabbs/bbs4/vol10/home.html
の53行目あたり
オススメの曲を教えて! - 朝生 浩 97/9/17 00:07:22
Re: オススメの曲を教えて! - ふらんこ 97/9/17 01:28:34
THANK YOU! - ヨ−タ 97/9/18 20:45:33
THANK YOU! - ヨ−タ 97/9/18 20:46:14
今は「硝子の少年」のよーだが - もひろ 97/9/18 21:19:01
結果は? - ヨ−タ 97/9/22 22:51:31
私のお薦めはコレです〜♪ - MINAMI 97/10/09 09:15:05

です。この部分を消してほしいです。

ロボット検索にひっかからないようにでもいいのですが
Web上に自分の名前があるのはどうも落ち着かなくて。

No. 1948 # kiyoto [E-mail] 2001/05/12 (土) 21:48:24
風光るの沖田さんとせいちゃんがすきなひといませんか?それと京都にあるという沖田さんの肖像画見た人だれかいませんか?私は、沖田さんの子孫をモデルにして書いたものなら見た事があるんですが・・・・・。

No. 1949 # 68user 2001/05/12 (土) 23:57:40
>>1947 ED
> ロボット検索にひっかからないようにでもいいのですが
ということであれば、ロボットよけを書くことで対処させて
いただきます。

No. 1950 # /tk 2001/05/14 (月) 03:04:39
>>1941 68user
メールで質問した者です。(名前違うけど・・・)
68userさん。ご回答ありがとうございます。

> perl4 なら sys/socket.ph を使うよう追記しておきます。
歌代さんの tcpconnect-1.0
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/tcpconnect-1.0
にて

    ;# require 'sys/socket.ph';
    unless (do 'sys/socket.ph') {
            #print "File sys/socket.ph is not found. Using default...\n";
            eval 'sub SOCK_STREAM {1;} sub AF_INET {2;} sub PF_INET {2;}';
    }

というコードを発見しました。
同じ「自分で直接 値を書く」でも、ここまですれば
許されそうな気がします(笑)

> TCP や UDP を使う場合は 0 でよいです。
> …
> プロトコルに 0 を指定すれば、自動的に
> 適切なプロトコルが決定されます。
> …
> なお、ICMP をしゃべったり、IP データグラムを直接生成する
> ために raw ソケットを生成したい場合は 非 0 を指定します。
なるほど、socket の説明の際によく書かれている
「普通は 0 でいいです」
的な言葉の意味が、ようやくわかりました。
# 危うく 0 を指定したいが為に getprotobyname('ip') とか
# 書くところだった… (本末転倒)

ところで、基本的な事がよく分かっていないので、勘違いの可能性大ですが
> socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
これだとリストで渡されませんか? > プロトコル

No. 1951 # 斎藤 2001/05/14 (月) 12:37:06
loggerコマンドで、-p"(priority)というのがあるのですが、
ここには、何を設定したらよいのですか。
”man logger”で見てもそれほど詳しくでできません。
設定する内容が詳しく書かれているものはないですか。

No. 1952 # 鈴木 2001/05/14 (月) 12:40:12
コマンドを使用して結果を出力せたた場合、1行ごとに改行と空白行
を含んで表示されます。
空白行を削除して詰めた結果を取得したいのですが、シェルスクリプト
でどう記述すればよいですか。

No. 1953 # 後藤 2001/05/14 (月) 13:27:38
こんちわっす!
APACHEに繋ぐにはどうしたらいいのでしょうか??
このホームページは一通りよんだのですが、頭が悪いせいかよく理解できませんでした。どうかお願いします。ちなみにUNIX on APACHEです。
ソケットで繋いだらいいのでしょうか??

No. 1954 # ED 2001/05/15 (火) 00:29:28
68userさん>
ロボットよけじゃなくて
やっぱ
その部分だけ消してもらえませんか?
よろしくお願いします

No. 1955 # にしだ 2001/05/15 (火) 03:21:38
かきこみ

No. 1956 # ひろ 2001/05/15 (火) 12:02:03
ちょっと趣旨が違うかもしれないのですが、同じパソコン上でCGIが動くかを試したいのですが(ソケット通信)どのようにすればいいかわかりません。
で、そのCGIが動くパソコンにはAPACHEが入っててそのAPACHEを通してデータのやり取りをしたいのですがいまいちよく分かりません・・・
どなたかURLだけでもいいのでお教えしていただけないでしょうか???

No. 1957 # はる 2001/05/15 (火) 17:19:18
困っています。"ln"コマンドでリンクを張ろうとし、誤ってしまいました。
>ls -la
lrwxrwrxrwx 1 haru 2 May 15 02:35 -s -> -s
となってしまいました。ファイルを消したくてrmを打ってみても
>rm -rf *s
usage: rm [-rif] file ...
と出てきて消せません。何方か消し方わかる方いらっしゃいますか?

No. 1958 # /tk 2001/05/15 (火) 21:22:00
>>1957 はる
> ファイルを消したくてrmを打ってみても
> >rm -rf *s
> usage: rm [-rif] file ...
> と出てきて消せません。
rm ./-s
で消せませんか?

No. 1959 # はる 2001/05/16 (水) 15:01:17
/tkさん
本当にありがとうございます。
消えました。

No. 1960 # 炭酸 2001/05/17 (木) 07:28:06
はじめまして炭酸といいます
HTTPプロトコルでファイルを転送するプログラムを作成しています
HTTP/1.1で部分的なPUTを行うためのヘッダの記述方法がわからないので
教えていただけないでしょうか?

あいうえおかきくけこ
↑このようなファイルを10バイトずつ2回に分けてPUTしたいのです

以下のようにやってみました

一回目
PUT /test.txt HTTP/1.1
Host:
Content-Length: 10
Content-Range: 0-9/20

あいうえお

二回目
PUT /test.txt HTTP/1.1
Host:
Content-Length: 10
Content-Range: 10-19/20

かきくけこ

これではうまくいかないようです
ほかに必要なヘッダなどありましたらお教えいただけませんでしょうか
長々と失礼いたしました

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

No. 1961 # mm 2001/05/17 (木) 11:41:00
>>1956 ひろさん
WinでApacheなら、<http://tohoho.wakusei.ne.jp/wwwxx048.htm>
ソケット通信は、localhostか直結してるなら自身のIPアドレスで
普通にアクセスすればいいです。

>rm ./-s
unixは使ったことないけど、
rm -- -s
でもいいのかな?

No. 1962 # /tk 2001/05/17 (木) 14:58:41
>>1961 mm
> unixは使ったことないけど、
> rm -- -s
> でもいいのかな?
rm なら良いみたいです。
http://pipi.iis.u-tokyo.ac.jp/~miyoshi/QandA/unix/file/15.html

ちょこっとテストした結果では
touch, cp, mv にも「--」オプションは有効でした。

# 調べものすると、自分の為になるなぁ…

No. 1963 # mm 2001/05/17 (木) 21:49:19
>>1962 /tk さん
>touch, cp, mv にも「--」オプションは有効でした。
getopt.cを使う古くからのコマンドや上位互換のライブラリを
使うものなら、たぶん有効だと思ってました。
けど、リンク先を見ると、./-s の方も覚えておいた方がいいようですね。
ありがとうございます。

No. 1964 # 68user 2001/05/18 (金) 01:57:48
>>1950 /tk
>> socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
> これだとリストで渡されませんか? > プロトコル
スカラーコンテキストなので、スカラー値が返ります。
    socket(SOCKET, PF_INET, SOCK_STREAM, @a=getprotobyname('tcp')) || warn "$!";
    print "@a\n";

    socket(SOCKET, PF_INET, SOCK_STREAM, $a=getprotobyname('tcp')) || warn "$!";
    print "$a\n";
を試してみるとわかると思います。

>>1951 斎藤
syslog.conf(5) に解説がありませんか?

>>1952 鈴木
状況がよくわかりません。command | grep -v '^$' とか?

ところで、
>>1951 斎藤
>>1952 鈴木
REMOTE_HOST が同じですが、同じ方ですか?

>>1953 後藤
どういう意味で「apache に繋ぐ」と言っているのかよくわかりません。
「〜はわかったが、〜の部分がわからない」という質問の仕方をして下さい。

>>1956 ひろ
http://X68000.startshop.co.jp/~68user/net/ を読んで、
「〜はわかったが、〜の部分がわからない」という質問の仕方をして下さい。

ところで、
>>1953 後藤
>>1956 ひろ
REMOTE_HOST が似ていますが、同じ方ですか?

>>1954 ED
わかりました。しかし、時間が取れないのですぐに作業することは
できません。ご了承下さい。

>>1960 炭酸
ちょっと時間が取れないので、土日にでも調べてみます。
> これではうまくいかないようです。
どううまくいかないのか、エラーメッセージは出るのか、
PUT 一つだとどうなるか、などを書くと回答をもらいやすい
かもしれません。

No. 1965 # 御影教授 [URL] [E-mail] 2001/05/18 (金) 10:37:57
はじめまして。PERL版HTTPクライアントのページが、大変役に立ちました。ありがとうございます。
最近、会社のフィルタリング(^^;が厳しくなっきた為、ちょうど、作っていたところでした。STDOUTへ
バーナーを挿入する無料サーバー(*1)を経由して、画像ファイル(*2)をGETする場合、一旦、
*2を*1へ保存してから、*2の埋め込みページを出力する、以外の面白いアイデアがあれは、お
聞かせ下さい。
#ウェブメールクライアントも作らないと(^^;

No. 1966 # 炭酸 2001/05/18 (金) 18:30:11
レスありがとうございます>68userさん
言葉が足りませんでした補足させてください
RFC2616 の14.16あたりを読んでやってみています

■リクエスト
1回目
PUT /test.txt HTTP/1.1
Host:
Content-Length: 10
Content-Range: bytes 0-9/20

あいうえお

2回目
PUT /test.txt HTTP/1.1
Host:
Content-Length: 10
Content-Range: bytes 10-19/20

かきくけこ

■結果
レスポンスヘッダには Content-Range ヘッダがありません
リクエストに Content-Range ヘッダがないときと同じように
動作しているようです
サーバにはかきくけこというデータが上がった状態になります
(2回目のリクエストで上書きされているようです)

サーバーのバージョンは
Apache/1.3.12(Unix) (Red Hat/Linux) tomcat/1.0 DAV/1.0.0 mod_perl/1.21
ですひょっとしてサーバーがレンジに対応していないのでしょうか?
ネットワークプログラムの初心者なのでリクエストに問題があるのかと不安に
思い質問させていただきました

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

No. 1967 # /tk 2001/05/18 (金) 22:10:11
>>1964 68user
> スカラーコンテキストなので、スカラー値が返ります。
うう。やはり基本的な事がわかってなかった。

何でスカラーコンテキストになるのかが
理解出来てなかったです。

今回の件で青ラクダ本のコンテキストの項や
サブルーチン(プロトタイプ)の項を読んで
自作の関数に getprotobyname() 渡して
その中で print したりして
何となく理解出来たつもりになりました。
# 今まで引数の型の宣言なんて知らなかった。

68userさん。ご回答ありがとうございました。


で、お礼の後の質問で恐縮なんですけど
自分なりに分かったつもりなった結果
> socket(SOCKET, PF_INET, SOCK_STREAM, @a=getprotobyname('tcp')) || warn "$!";
これの警告が出る理由は getprotobyname('tcp') の
リストの要素数が 3つだからだとと思うのですが
実のところどうなんでしょう?
# またもや間違っている可能性大

No. 1968 # ED 2001/05/18 (金) 23:30:08
>68userさん
ありがとうございます。
助かります。

No. 1969 # The WAY [URL] 2001/05/19 (土) 00:16:33
>>1966 炭酸
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6 によると
>If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server.
とあるので、
>サーバには「かきくけこ」というデータが上がった状態になります。
>(2回目のリクエストで上書きされているようです。)
というのは仕様上正しい動作だと思います。

>>1960 炭酸
を読むと、おそらく「レジュームの逆」を行いたいのだと思うのですが、それは PUT ではできないと思います。
# FTP の PUT でもできないですよね?

No. 1970 # 68user 2001/05/19 (土) 00:22:47
>>1967 /tk
> これの警告が出る理由は getprotobyname('tcp') の
> リストの要素数が 3つだからだとと思うのですが
そうですね。
    socket(SOCKET, PF_INET, SOCK_STREAM, @a=getprotobyname('tcp'))

    Protocol not supported at -e line 1.
となりますが、これは ('tcp','TCP',6) というスカラーが返って、
先頭の 'tcp' の値が使われるのでエラーになると思っていましたが、
勘違いでした。

('tcp','TCP',6) というリストをスカラーコンテキストで評価
したため 3 が返り、
    socket(SOCKET, PF_INET, SOCK_STREAM, 3)
と等価になってしまったということですね。

>>1966 炭酸
すいません。今 apache で PUT メソッドを有効にするには
どうすればいいんだっけ? と調べているところです。

# apache 単体では無理で、mod_put か DAV あたりを入れないと
# ダメみたいですね。

また PUT や Content-Range は実際に使ったことがないので、
あまり期待しないで下さい。

No. 1971 # 68user 2001/05/19 (土) 00:43:43
>>1969 The WAY
> http://way.direct.ne.jp/HTTP/
RFC2616 は流し読んだ程度なので、僕も勉強しないと。というわけで、
    http://X68000.startshop.co.jp/~68user/net/rfc.html
からリンクを張らせていただきました。

# http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/rfc.html

No. 1972 # moto [E-mail] 2001/05/19 (土) 01:07:49
大変勉強になり感謝しています。(本当だよ)

パールの関数で 
$port = getservbyname('http','tcp'); の出力がなくて
悩んでいたのですが、今日その理由がわかりました。
プロバイダーの /etc/services に http tcp/80 のエントリが
無いのです。(-_-;)
試しに自分のPCの C:\windows\services  を覗いたら
ここにもエントリがありません。
他のウェルノゥンポートはエントリがあるのに
何故 HTTP のみがエントリされてないのでしょうか。
セキュリティーの関係なのでしょうか。

No. 1973 # 68user 2001/05/19 (土) 18:47:52
>>1972 moto
> プロバイダーの /etc/services に http tcp/80 のエントリが
> 無いのです。(-_-;)
例えば Solaris2.6 などは http tcp/80 がありませんね。

> 試しに自分のPCの C:\windows\services を覗いたら
> ここにもエントリがありません。
生まれて初めて C:\windows\services を見ましたが、http の
エントリってないのですね (Windows Me)。

Solaris は最小限のエントリのみ書いておくから、必要なら勝手に
追加してね、という思想じゃないかと想像します。Windows Me は
なぜでしょうね? わかりません。

なお、UNIX では NIS というシステム情報を共有する仕組みがあります。
もしそれを使っているなら
    % ypcat services
とすれば出てくる場合もあるでしょう。NIS 使用時には getservbyname は
/etc/services を見ません。

No. 1974 # 炭酸 2001/05/21 (月) 00:19:53
どうもありがとうございます。>68userさん The Wayさん

サーバーにはDAVが入ってるので、普通のPUTはできます。
もういちどRFCをよく見直してみます。
ほんとにありがとうございました。

No. 1975 # ENO [URL] 2001/05/21 (月) 20:42:57
はじめまして、ENOと申します。

質問その1:

FreeBSD4.2で、ENIのatmアダプタを認識させ、
en0というインタフェースが出来たのですが、
これをmulticastに対応させたいのですが、
en0=841<UP,RUNNING,SIMPLEX>mtu 9180
となっていて、対応してくれません、
ここに<....,MULTICAST>となるようにするに
は、どうしたらよいのでしょうか・・・どな
たか教えてください

その2:
その1のマシンで、mroutedを動かして、マル
チキャストルータとしたいのですが、webのあ
ちこちにある資料にあるように、デフォルトで
mrouted_enable="YES"としても、動いてくれま
せん。mroutedを動く状態にするまでにどうした
らよいのか教えてください

宜しくお願いいたします

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