Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
雑学(笑)
[go: Go Back, main page]

雑学(笑)

原著:爺   著作:蘭熊才王


 IRCに関する話でさして重要でもないものを取り上げております。暇なときに流し読みをすれば楽しいかもしれません。

  • leaf.nerv.ne.jp (宣伝)

       有名なゲームソフト会社リーフさん用のチャンネルが(有)ネルフさんが立ち上げた独立サーバーの中にあります。ここは公開サーバーとはリンクしてないようで、このサーバーに接続した人としか話せません。

       leaf.nerv.ne.jp#leafというチャンネルです。

       詳しくはで・・・・・。

  • JPchat project (宣伝)

       草の根のIRCネットワーク(公開サーバーとはリンクされていないIRCサーバー群)の一つを紹介します。ポリシーが「1.みんなよっといで」と「2.チープにいこう」だけというかっこいい所です。

       irc.jp-chat.toに繋げば自動的に各サーバーに振り分けられるようです。

       詳しくは「JPchat」で・・・・・。

  • Friend Chat IRC (宣伝)

       ローカルで立ち上げたサーバーをリンクしてできた草の根IRCネットワークです。管理人様から宣伝文を頂きましたので下に記しておきます。

       「とりあえず仲間同士でirc網たちあげました、是非接続して仲良くchatしてください」で、、、、A^_^;)アセアセ

       irc.friend.td.nuで自動的に各サーバーに振り分けられます。

       なお、詳細は「Friend Chat IRC」に書かれていますのでどうぞお越し下さい。

  • 「#鬼畜の家畜」広報ページ (宣伝)

  • 逆引きとは... (用語説明)

       IPアドレス(202.211.152.221など)からホスト名(www.seikyou.ne.jpなど)を調べること。自分のネットワークのネームサーバーに登録されているものである。

  • PINGとは... (用語説明)

       ネットワークの時間的距離を測るコマンドです。Windows95にもありますが、WS PING32(ZIP形式で圧縮してます)というPINGにNSLOOKUP(IPアドレスからホスト名を検索したりその逆を行う)とTRACEROUTE(ネットワーク経路と状態を調べる)の機能を付随したわかりやすいフリーソフトがあります。使い方は至って簡単、HOST:の所にIPかDOMAINを入力してPINGのボタンを押せばOKです。もちろん、インターネットに繋いでいる時でないとあんまり意味がありません。

  • FQDNとは... (用語説明)

        Fully Qualified Domain Name。あるホスト(各端末のことです)やドメインを省略無しに完全に表す方法を示します。DNS(Domain Name System)に置いてはこれが基本となります。分かりやすくするためにドメイン(Domain)とホスト名(hostname)も説明します。
       ドメインというのは例えばnanatic.tokio.ne.jpで、あるネットワークを示しています。これは一つ以上のホストを含むネットワークです。デフォルトドメインが設定されている場合はnanatic(サブドメイン)だけで指定できます。
       ホスト名というのは各ホストの場所そのものを示していて例は二通り考えられます。www.nanatic.tokio.ne.jpのwww(多分Webサーバーが置いてあるホスト)又はwww.nanatic.tokio.ne.jpそれ自身です。ドメインnanatic.tokio.ne.jpのネットワークの中ではホスト名はwwwだけでも省略している部分を推測して場所を把握できるわけです。しかしそのネットワークの外からは分かりません。完全なホスト名はwww.nanatic.tokio.ne.jpになるわけです。よってこれらの場合におけるホスト名のFQDNはwww.nanatic.tokio.ne.jp、ドメインのFQDNはnanatic.tokio.ne.jpになるわけです。
       なおFQDNはホスト名だけを指し、ドメインのFQDNという言い方はしないという人もいます。どちらが正しいのか分かりません。
       ちなみにURL(Uniform Resource Locator)というのはプロトコル(スキーム)、ポートや認証部分などをホスト名のFQDNに追加したものです。

  • チャンネルとは... (用語説明)

       ある共通の話題を持った人でチャットするためのところで#&+!%(%はあるクライアントだけ通用します)といった文字に続く名前がチャンネル名を表しています。チャンネルに入らなくても一対一の会話はできますが多くの人とチャットするにはチャンネルにはいるしかありません。チャンネルにはかならず誰かがいます、というよりチャンネルが存在するということは誰かがいるということなのです。チャンネルにはいる時、もし入ったチャンネルが既にあれば、既にだれか先に入っていればそのチャンネルに入ることになります。それじゃあ、存在しないチャンネルに入るとした時どうなるか・・・。新しくチャンネルを作ってそこに入ることになります。そしてそのチャンネルに誰もいなくなったとき、チャンネルは消滅します。

       チャンネルには同時に複数入れますが(ほとんどのサーバーに於いて)最大20個までです。/stats d <server name>で表示されるMCPUの値が一人当たりの最大チャンネル数になります。

       また、チャンネル名にはチャンネルマスクというものを付けられます。(正確にはチャンネルマスクもチャンネル名の一部と考えられます。)チャンネルマスクというのはどのサーバーにおいてそのチャンネルが存在するか制限するものです。その形式はチャンネル名の一番最後の":"(コロン)のあとの部分(:を含む)です。
       例えば#網管理:*.jpならチャンネルマスクは:*.jpで、サーバー名の最後に.jpがつくサーバーに於いてのみ存在するチャンネルということです。#網管理:*.ad.jpならさらに範囲が狭くサーバー名の最後に.ad.jpがつくサーバーにしか存在しません。なおチャンネル名は#網管理:*.ad.jpでチャンネルマスクは:*.ad.jpとなります。

       最後に重要なことですが、チャンネル名は大文字小文字を区別しないので注意して下さい。

  • 色々なIRCネットワーク (実状)

       実はIRCサーバーの全てが同じネットワークに繋がっているわけではありません。今まで紹介した国内の主要なサーバーが属しているIRCnetの他にも、EFnetUndernetirc.msn.comなどあります。日本にもReichaNetや個々に立ち上げている独自のサーバーなどがあります。これらは必ずしも同じ規格のサーバーで動いているわけではなく各netでパッチを当てたり使用コマンドを変えたりして理念が少しずつ違います。 そのため当然といえば当然ですが、各ネットワークはリンクされていません。時には特定のIRCクライアントを必要にする場合ですらあります

  • (JIS使用時の)チャンネル名の制約 (法則)

       (1 byte文字で)最長200文字までの文字列で(これは"&"、"#"、"!"または"+"の文字で始まります)、BELL(ベル)、NUL(ヌル)、CR(キャリッジリターン)、LF(ラインフィード)、コンマ","、スペース" "(これらは全てASCII-code(半角)です)、またチャンネルマスクが正しくかかっている事がチャンネル名に対する制約となります。(但し最長文字数はサーバー側の設定に変わります。50文字程度が現状です。)
       その上サーバーが正しく2byte文字を認識せず1byte文字としか認識できないせいもあって、ERROR:Bad Channel Mask(#ず)??? : :irc.karrn.ad.jp 353 nickname = #$ 裟摯溟繪烱、ERROR: (B :No such channelの様になってチャンネルが作れないことがあります。
       現在確認した文字としては「が($,)」があります。この文字はチャンネル名に使えません。
       「ず($:)」#ずなどでは#^[$B$:^[(Bと解釈され、チャンネルマスクがきちんと設定されておらずエラーが出ます。(確かに:^[(Bなんてチャンネルマスクはありません。)こういう場合は#ず:*#ず:*.jpとしてチャンネルマスクをきちんと設定してやれば問題を回避できます。

       但しirc2.10.3+jp6から菊地高広様のご尽力により「が」や「ず」なども、パッチjp6以上をあてているサーバー間でのみ、チャンネル名に使えるようになりました。

  • (JIS使用時の)チャンネル名の混同 (法則)

       「る」「に」と、「な」「り」と混同してしまいます。つまり、「#るり」と「#にな」は同じチャンネルになってしまいます。(「る=に」、「な=り」ということです。)
       なぜならサーバーは正しく2byte文字を認識せず1byte文字としか認識できない上に、チャンネル名は大文字と小文字を区別しないので、「な($J)」と「り($j)」は同じ「$j」に見えるのです。他にもこういう現象があるかもしれませんがこちらでは確認しておりません。

  • ping timeout (エラー情報)

       IRCサーバーIRCクライアントの接続を確かめるために送ったPINGにIRCクライアントがPONGで答えられず落ちたときに上の表題のようなエラーが出ます。理由はOS側の命令の処理になんかのトラブルがあったのでしょう。

  • TCPレベルでの落ち (エラー情報)

       IRCをやっていてよく見かけるのが

      connection reset by peer

      というエラーメッセージを残して落ちていく人々です。これはping timeoutと異なり、TCPレベルでリンクが切れた人に対してサーバーのソケットが回線を切るときに出るメッセージです。

      (jcol様に間違いを指摘していただきました。ありがとうございました。)

  • Dead Socket (エラー情報)

       これはIRCクライアントの受信がまにあわずIRCサーバーのソケットのバッファがいっぱいになってしまって落ちたときのエラーです。

  • EOF From Client (エラー情報)

  • ERROR: Your connection is restricted! (エラー情報)

       表題のようなエラーメッセージが出てニックネームが変えられない人(i-lined users)がいます。/mode nickname +rで制限されているからです。現象としては、「なるとを持っていてもチャンネルオペレータ権限を持てない」「ニックネームを変えられない」という風になっています。これは本来逆引きをしていなければサーバに接続できない所をある制限を設けて接続を許可するといったときにサーバーが自動的にそのクライアントに付けるモードです。きちんと接続できるようにしなければどうしようもない問題なので、ご自分のネットワークの管理者に相談しましょう。

       ちなみに制限されている方はユーザー名の前に"+"か"="か"-"がついてます。

  • ニックネームの衝突(コリジョン) (エラー情報)

       本来は一つのネットワークに一つのニックネームしかないはずですが、他のネットワークとリンクしたときそちらのネットワークにも同じニックネームがある場合があります。その場合自動的にサーバーオペレータが両方ともKILL、つまり落とすことになっています。そういうときには下の様なエラーメッセージが出ます。

      Nickname has left IRC(Nick collision on Nickname (~kunio@p025-ip01osakakita.yamasa.kui.ne.jp)irc.kyoto.wide.ad.jp <- (-kunio@p025-ip01osakakita.yamasa.kui.ne.jp)irc.tokyo.wide.ad.jp)

  • MODE付きJOIN (規格)

       新しくチャンネルを作る場合、作った人は@を持って入ってきます。またserver splitが復旧した場合も@を持ちながらJOINする人が居ます。これはサーバー側からJOIN チャンネル名\007oというコマンドが届いてます。(\007(8進数における7)とはASCII-codeのBELLです。)勿論これはクライアント側から入力しても無視されます。\007の後ろにはチャンネルモードoの他にvが来ることができます。但し2.10系列からはNJOINコマンドを変わりに使います。

  • 2.10系列からのBANやLIMITの制限 (規格)

       2.10系列からBAN(/mode +b)やLIMIT(/mode +l)の規格が変わりまして、例えBANされていても、LIMITしていてもチャンネル内の人間からINVITEされた場合は入れます。但し+oまたは+vしてもらわない限り発言できません。

  • サーバーチャンネル (規格)

       2.8系列以前はユーザーモード+sをつけることで見ることが出来たサーバーのシステム関係のメッセージを、次のローカルチャンネルに入ることで見ることが出来ます。なお各チャンネルには+mtnaqのチャンネルモードがついています。
      &ERRORS;SERVER MESSAGES: server errors
      &NOTICES;SERVER MESSAGES: warnings and notices
      &KILLS;SERVER MESSAGES: operator and server kills
      &CHANNEL;SERVER MESSAGES: fake modes
      &NUMERICS;SERVER MESSAGES: numerics received
      &SERVERS;SERVER MESSAGES: servers joining and leaving
      &HASH;SERVER MESSAGES: hash tables growth
      &LOCAL;SERVER MESSAGES: notices about local connections
      &SERVICES;SERVER MESSAGES: services joining and leaving
      &DEBUG;SERVER MESSAGES: debug messages [you shouldn't be here! ;)]
      &AUTH;SERVER MESSAGES: messages from the authentication slave

  • ident server (規格)

       接続時にクライアントが設定するパラメータはニックネームユーザー名本名、サーバー名、それにホスト名があります。その中のサーバー名とホスト名はサーバー側でわかるのでクライアントの入力を無視します。ただしユーザー名はクライアントからの情報を信頼するしかありません。
       そのためident serverというものを使用します。このアプリケーションがクライアント側にあればユーザー名を確実に聞き出すことができます。ident serverについて詳しい事が知りたければRFC1413或いはpidentdのドキュメントを見て下さい。けれどWindows95などにおいてこういうソフトはないので、代わりにIRCクライアントがエミュレートします。まあ、そこまでできたIRCクライアントは少ないです。そういう場合(つまりident serverが無い場合、またはユーザー名わからなくてunknownの場合)、サーバーの方針に従ってユーザー名の前にprefixを追加して接続するか、はなっから接続を拒否します。なぜそれ程までにユーザー名が重要かと言いますと普通、「ユーザー名@ホスト名」がその人のメールアドレスになるからです。(これはUNIXにおいて顕著です。)

       なおWindows上で動く疑似ident serverというものもあります。fingdent.zipident211.zipIdentd v1.5日本語化版です。只こういうものを使ったら、何のためのident serverかわからなくなりますが・・・。

       最後にident関係でユーザー名に付くprefixを書いておきます。
      (none)I line with ident
      ^I line with OTHER type ident
      ~I line, no ident
      +i line with ident
      =i line with OTHER type ident
      -i line, no ident

  • +で始まるチャンネル (規格)

       実は"+"で始まるチャンネルがあります。そこでは最初から全員なるとを持っていません。というかチャンネルモードが付けられません。またトピックも付けられません。もちろん皆さんも作れますよ。

  • !で始まるチャンネル (規格)

       2.10系列から"!"で始まるチャンネルができました。これはserever splitにより発生する問題、チャンネルの衝突を解決するために作られました。

       その一番の特徴はチャンネル名が"short name"と"ID"に分かれる事です。このチャンネルを作るためには(例:!foo)、!!fooに入る様にします。しかし実際には!2B4ADfoo("完全なチャンネル名")というチャンネルが作られます。!2B4ADの部分は"ID"と呼ばれるものでサーバーによってランダムに与えられます。また!fooというのが"short name"になります。その特徴を箇条書きにして下に記します。

      • 新規に!チャンネルを作る場合、同じネットワーク上に同じ"short name"を持つ!チャンネルがない事と、最近serever splitが起きているならその前に同様の"short name"を持つ!チャンネルが無かった事のみ条件となります。"ID"は関係有りません。

      • serever splitが起きて、現在はその"short name"を持つ!チャンネルが存在してないのに、serever split以前に同じ"short name"を持つ!チャンネルが存在していたため作られなくなったとします。しかしこれは永遠ではありません。ある程度の期間だけの話でその後同じ"short name"を持つ!チャンネルを作れるようになります。但しここで重要なのは、その!チャンネルは以前存在していた!チャンネルと同じ"short name"でも違う"ID"に成ることです。

      • serever splitが起きて時間がある程度経っていない場合、!チャンネルに入ることはできますが@を得ることはできません。ある程度とは(設定にも因りますが)60分です。

      • JOINコマンドのパラメータは"short name"のみでも指定できます。但しserever splitによって同じ"short name"だけど違う"ID"を持つ複数の!チャンネルがあった場合、"ID"も含んだ"完全なチャンネル名"でJOINする事になります。これはJOINコマンドに於いてだけで、他のLISTやNAMESなどのコマンドは必ず"完全なチャンネル名"を取ります。

      • !チャンネルを作った人は+Oというモードが付きます。このモードがある人のみチャンネルモード+aと+rが付けられます。なお+Oのモードはその人がチャンネルオペレータでなくなった時か!チャンネルを抜けたときに破棄されます。そして!チャンネルを作り直さない限り二度と取得できません。

      • !チャンネルには+rというチャンネルモードを付けられます。全員が@を無くしてある程度たった後、ランダムに@を付け直します。これは考え様に因っては、複数接続(clone接続)している人間が有利な様に聞こえますが複数接続している人間に@をつける事はありません。

  • server split、netsplit(サーバー間の接続の一時的断絶) (規格)

       server splitというのは要するにサーバー間のリンクが一時的に切れることです。次のようなメッセージでQUITしていく人はirc.rcac.tdi.co.jpとirc.kyoto.wide.ad.jpのserver splitのせいで落ちたように見える人です。

      Rankuma_d has left IRC(irc.rcac.tdi.co.jp irc.kyoto.wide.ad.jp)

       昔はserver splitがおこっている間に同じ名前のチャンネルを作り、なるとを取得し、サーバー間の接続が戻った瞬間にチャンネルの他の人をban&kickしてチャンネルを占領してしまう人がいました。そのため今ではserver splitがおこってから30分間は存在していたチャンネルニックネームを固定してserver split前にあったチャンネルを新しく作ったり、ニックネームを変えたり、することができなくなります。(なお固定時間はサーバーの設定によって違います。)

       当たり前と思う方がおられると思うので補足しておきます。まず繋がっているサーバー群、つまり一つのネットワークではチャンネルニックネームも唯一つであることが保証されています。しかしそれがあるところで接続が切れて二つのネットワークになったとしましょう。そうすると同じチャンネルニックネームがそれぞれに作れるわけです。そのままでいるのなら何の問題もありませんが、元々不本意に接続が切れたのですから、いつかは接続してまた一つのネットワークに戻るわけです。そうすると一つのネットワークに二つのチャンネルニックネームが存在してしまうことになります。チャンネルは構成員を一つにまとめるだけでいいですが(それでも上のような@の取得問題が起きます)、ニックネームはそうはいきません。それで今までは両方とも落としていました。 その後は早い者勝ちですね。早く接続し直した方がそのニックネームを獲得できるわけです。
       そこで、人のニックネームを奪取しようとする人は、server splitが起きてる間に奪取したいニックネームにして、接続が復活して両方落とされた後にすかさず入り直してニックネームを盗むということをしてました。そういう行為に対する対策でもあるのです。

       その時のエラーメッセージが下の文です。

      ERROR: Nickname :Nick/channel is temporarily unavailable
      ERROR: #Channel :Nick/channel is temporarily unavailable


一つ前に戻る  トップページに戻る