この質問(http://www.hatena.ne.jp/1086057080)の続きです。サーバー運用者から以下の情報を得ました。「Non-root users can bind sockets 1024 and above, so there will be no problem with writing PHP and PERL scripts that bind to these sockets. 」つまり、ポート1024以上ならPERLでもソケットを使えるということですが、実際にはエラー(timeoutっぽい)になります。環境で確認すること整えることがあれば教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/06/01 19:09:37
  • 終了:--

回答(2件)

id:aki73ix No.1

aki73ix回答回数5224ベストアンサー獲得回数272004/06/03 15:59:04

ポイント50pt

http://chaichan.hp.infoseek.co.jp/qa1000/qa1067.htm

Perlで任意のURLのHTMLを読むには? について

いや、この場合の、bindはサーバソケットになるんじゃないでしょうか?1024としている辺りがおかしいです。こういった制限があるのはBindコマンドを使うときです

http://www.7key.jp/program/perl/bind.html

Perl関数リファレンス bind -- Ray:雑学事典

pack/socket コマンドの許可が逆に1024以上のポートで許可されていない可能性があります

試しに80番ポートで試して見ましょう

以下のURLに特定のホームページのURLを摂ってくるCGIが掲載されています(こないだのCGIを改造してもOK)

id:dayofgreen

なるほど!!!!ポート80では動きました。さらに質問で申し訳ありませんが、なぜ1024以上が禁止されているのでしょうか。

2004/06/03 17:16:12
id:aki73ix No.2

aki73ix回答回数5224ベストアンサー獲得回数272004/06/04 06:32:34

ポイント10pt

それはWellknownPortといわれるアプリケーションから良く使うPortが1024未満だからです

1024以上のエフェメラルポートはBackDoorなどのハッキングに使われる事があるので、禁止している場合があるわけです

この場合もそう言うことじゃないかと思われます

1024未満の数字で、shoutcastサーバを立てる・・・かレンタルサーバを変えるというところが妥当なんじゃないですかね

以下は資料

-------------------------------------------------

ポート番号は、0 〜 65535 番までの番号があり、そのうち 0 番は特殊な指定になります。

 0 〜 1023 番までのポート番号の事を、一般的にウェルノウン・ポート番号 (Well Known Port Numbers) と呼び、ある特定のプロトコルやアプリケーションを使用するために、予め予約されている番号になります。

 1024 以降のポート番号はエフェメラル・ポート番号 (Ephemeral Port Numbers) と呼ばれ、通信が行われる際にアプリケーション間で適宜割り当てが行われる番号を指します。

 ウェルノウン・ポート番号の割り当ては、IANA が行っています。

id:dayofgreen

なるほど、ありがとうございます。特殊な理由があるのかと思いましたが、一般的な理由ですね。しかし、さすがにこういうことまでスペックに書いてあるレンタルサーバーは見かけませんよね。ちょっとこれも聞いてみようかと思います。

2004/06/04 17:33:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません