IPアドレス
'''IPアドレス'''('''アイピーアドレス''')とは、[[パケット]]を送受信する機器を判別するための番号である。[[Internet Protocol|IP]] で定義されている。もともとは狭義の[[インターネット]]で用いられるものだが、インターネットの普及と共にLANでも使われるようになった。 == 概説 == 2008年現在、IPアドレスとして多く利用されているのは、[[IPv4]]という[[プロトコル]]に基づく 32 [[ビット]]の[[アドレス空間]]である。 IPv4の[[IPアドレス枯渇問題]]に伴い規格された[[IPv6]]プロトコルでは、IP アドレスは 128 ビットに拡張されている。 IP アドレスは、MSB ([[最上位ビット]]) に近い側をネットワーク部、LSB ([[最下位ビット]]) に近い側をホスト部として区別する。ネットワーク部がネットワークを指定し、ホスト部がそのネットワーク内の機器を指定する。ネットワーク部とホスト部の区別には[[サブネットマスク]]を用いる。 == 表記 == [[画像:IPv4 address ja.png|thumb|250px|IPv4の構造。十進法を[[二進法]]に変換し、8桁の数字(8ビット)で1バイトとなる。その8ビットが4つに区切られ、合計で32ビット(=4バイト)となっている<!-- もっといい説明方法が思い浮かばない・・ -->]] IPv4のIPアドレスの表記法には以下の規則がある。IPv6については[[IPv6]]の記事で取り扱う。 * 通常は、ドット付き十進表記 (dotted decimal notation) あるいはドットアドレス (dot address) と呼ばれる、0-255の数字4組(8ビット×4=32ビット)を[[ドット]]で繋いだ記法で表記される。 **(例)192.168.0.1 gethostbyname()やinet_aton()など、IPアドレスを解釈する実装の一部では、以下のような表記も許している。 * 数字が3組のときは、3番目は16ビットと解釈される。 **(例)192.168.1 (= 192.168.0.1) * 数字が2組のときは、2組目は24ビットと解釈される。 **(例)192.11010049 (= 192.168.0.1、('''168'''×256+'''0''')×256+'''1'''=11010049) *ドットがないときは、単一の32ビット数と解釈される。ロングIPアドレスなどとも呼ばれる。 **(例)3232235521 (= 192.168.0.1、(('''192'''×256+'''168''')×256+'''0''')×256+'''1'''=3232235521) * 各数字は0xを前置すると16進数、0を前置すると8進と解釈される。 **(例)0xC0A80001 (= 192.168.0.1) **(例)0xC0.0250.1 (= 192.168.0.1、(0xC0=192, 0250=168)) これらの表記はRFC等で規定されておらず(RFC3986を参照のこと)、[[オペレーティングシステム]] (OS) やアプリケーション(例:[[ウェブブラウザ]]ソフト)、ネットワーク機器等によっては利用できないことがある。 また、悪意のある者が[[フィッシング (詐欺)|フィッシング]]サイトなどのURLを偽装するために用いる場合もあるので、注意が必要である。 == アドレスクラス == IPアドレスは、次の5つのアドレスクラスに分かれている。 {| class="wikitable" !クラス !アドレス範囲 !用途 |- |クラスA |0.0.0.0-127.255.255.255 |[[サブネットマスク#ネットワークアドレス|ネットワークアドレス]]長は8ビット、[[サブネットマスク#ホストアドレス|ホストアドレス]]長は24ビット |- |クラスB |128.0.0.0-191.255.255.255 |ネットワークアドレス長は16ビット、ホストアドレス長も16ビット |- |クラスC |192.0.0.0-223.255.255.255 |ネットワークアドレス長は24ビット、ホストアドレス長は8ビット |- |クラスD |224.0.0.0-239.255.255.255 |[[IPマルチキャスト]]専用 |- |クラスE |240.0.0.0-255.255.255.255 |特に割り当ては決まっていない |} クラスAからクラスCまでは、ネットワーク部とホスト部の境界が8ビット単位で区分けされている。クラスAはネットワーク部が短く(8ビット)、ホスト部が長い(24ビット)。すなわち、多くの機器を保有する大組織や、多くの顧客を有する大規模な[[インターネットサービスプロバイダ]] (ISP) に割り当てるのに適している。クラスCはその逆である。これは、日本の[[電話番号]]において、[[東京]]などの人口が多い地域には03のような短い[[市外局番]]が割り当てられ、人口の少ない地域には長い市外局番が割り当てられているのと似ている。クラスAが約1,677万台、クラスBが65,534台、クラスCが254台のホストを接続できる。 しかし、アドレスクラスを用いたIPアドレス割り当てには問題が生じた。ほとんどのネットワーク(たとえばインターネットサービスプロバイダ)では、クラスAでは大きすぎ、クラスCでは小さすぎたため、割り当ての要求がクラスBに集中したのである。クラスBの割り当てを受けたネットワークの中には65,534台のホスト(インターネットサービスプロバイダであれば接続ユーザー数)をフルに接続することがまれであるネットワークも存在し、IPアドレスが無駄に消費されることになった。そこで現在ではアドレスクラスを使わず、ネットワーク部とホスト部の境界を8ビット単位に固定せずに細分化する可変長サブネットマスクや、CIDR(Classless Inter-Domain Routing)が一般化している。 IPアドレスの割り当て範囲を示すために、IPアドレスの末尾に「/([[スラッシュ (記号)|スラッシュ]])」とともにネットワークアドレス長を付記して表わすことも多い。IPv4の場合、MSB側からのビット数でネットワークアドレス長を表す。例えば192.168.0.0/24の表記の場合、ネットワーク部はMSBから24ビットで、残り8ビットがホスト部となる。アドレスクラスでなくサブネットマスクの場合、ネットワークアドレス長の数字は8の倍数にはならないことになる。<!--IPv6の場合希望--> === CIDR表 === [[:w:Classless Inter-Domain Routing]]を用いることで、192.168.1.0-192.168.1.255という複数のIPアドレスを範囲指定させることができる。活用方法としては、ウィキペディアで行われている[[Wikipedia:広域ブロック|広域ブロック]]といった特定の範囲内のIPアドレスを持つ利用者の読み書きの許可及び拒否などがある。 たとえば、69.208で始まるIPアドレス群の場合、CIDRと開始アドレス及び終了アドレスは以下のようになる。 {| class="wikitable" !CIDR !開始アドレス !終了アドレス !含まれるアドレス数 !二進法表記したアドレス数 |- |69.208.0.0'''/0''' |0.0.0.0 |255.255.255.255 |style="text-align: right"|4,294,967,296 |********.********.********.******** |- |69.208.0.0'''/1''' |0.0.0.0 |127.255.255.255 |style="text-align: right"|2,147,483,648 |0*******.********.********.******** |- |69.208.0.0'''/4''' |64.0.0.0 |79.255.255.255 |style="text-align: right"|268,435,456 |0100****.********.********.******** |- |69.208.0.0'''/8''' |69.0.0.0 |69.255.255.255 |style="text-align: right"|16,777,216 |01000101.********.********.******** |- |69.208.0.0'''/11''' |69.192.0.0 |69.223.255.255 |style="text-align: right"|2,097,152 |01000101.110*****.********.******** |- |69.208.0.0'''/12''' |69.208.0.0 |69.223.255.255 |style="text-align: right"|1,048,576 |01000101.1101****.********.******** |- |69.208.0.0'''/13''' |69.208.0.0 |69.215.255.255 |style="text-align: right"|524,288 |01000101.11010***.********.******** |- |69.208.0.0'''/14''' |69.208.0.0 |69.211.255.255 |style="text-align: right"|262,144 |01000101.110100**.********.******** |- |69.208.0.0'''/15''' |69.208.0.0 |69.209.255.255 |style="text-align: right"|131,072 |01000101.1101000*.********.******** |- |69.208.0.0'''/16''' |69.208.0.0 |69.208.255.255 |style="text-align: right"|65,536 |01000101.11010000.********.******** |- |69.208.0.0'''/17''' |69.208.0.0 |69.208.127.255 |style="text-align: right"|32,768 |01000101.11010000.0*******.******** |- |69.208.0.0'''/18''' |69.208.0.0 |69.208.63.255 |style="text-align: right"|16,384 |01000101.11010000.00******.******** |- |69.208.0.0'''/19''' |69.208.0.0 |69.208.31.255 |style="text-align: right"|8,192 |01000101.11010000.000*****.******** |- |69.208.0.0'''/20''' |69.208.0.0 |69.208.15.255 |style="text-align: right"|4,096 |01000101.11010000.0000****.******** |- |69.208.0.0'''/21''' |69.208.0.0 |69.208.7.255 |style="text-align: right"|2,048 |01000101.11010000.00000***.******** |- |69.208.0.0'''/22''' |69.208.0.0 |69.208.3.255 |style="text-align: right"|1,024 |01000101.11010000.000000**.******** |- |69.208.0.0'''/23''' |69.208.0.0 |69.208.1.255 |style="text-align: right"|512 |01000101.11010000.0000000*.******** |- |69.208.0.0'''/24''' |69.208.0.0 |69.208.0.255 |style="text-align: right"|256 |01000101.11010000.00000000.******** |- |69.208.0.0'''/25''' |69.208.0.0 |69.208.0.127 |style="text-align: right"|128 |01000101.11010000.00000000.0******* |- |69.208.0.0'''/26''' |69.208.0.0 |69.208.0.63 |style="text-align: right"|64 |01000101.11010000.00000000.00****** |- |69.208.0.0'''/27''' |69.208.0.0 |69.208.0.31 |style="text-align: right"|32 |01000101.11010000.00000000.000***** |- |69.208.0.0'''/28''' |69.208.0.0 |69.208.0.15 |style="text-align: right"|16 |01000101.11010000.00000000.0000**** |- |69.208.0.0'''/29''' |69.208.0.0 |69.208.0.7 |style="text-align: right"|8 |01000101.11010000.00000000.00000*** |- |69.208.0.0'''/30''' |69.208.0.0 |69.208.0.3 |style="text-align: right"|4 |01000101.11010000.00000000.000000** |- |69.208.0.0'''/31''' |69.208.0.0 |69.208.0.1 |style="text-align: right"|2 |01000101.11010000.00000000.0000000* |- |69.208.0.0'''/32''' |69.208.0.0 |69.208.0.0 |style="text-align: right"|1 |01000101.11010000.00000000.00000000 |} '''表の見方の例''' * 69.208.0.0/16 は、69.208.0.0 から 69.208.255.255 までの65,536アドレス範囲を含む。 * 69.208.0.0/24 は、69.208.0.0 から 69.208.0.255 までの256アドレス範囲を含む。 == スコープ == 通信可能な範囲のことをスコープという。 IPアドレスは、それぞれにスコープが決められている。(→[[IPv4#予約アドレス一覧|一覧]]) === グローバルIPアドレス === 後述するプライベートIPアドレス、リンクローカルアドレス、特殊用途のIPアドレスなどを除いたIPアドレスは、「グローバルIPアドレス」と呼び、インターネットの接続用に利用される。そのため、[[ICANN]]を頂点とした階層的な委譲関係によって世界的な管理が行われている。日本では[[日本ネットワークインフォメーションセンター]](通称JPNIC)にて管理されている。 通常、パソコンや[[ルータ]]などをインターネットに接続すると、ISPに割り振られているグローバルIPアドレスの中の一つがパソコンなどに割り当てられる。 === プライベートIPアドレス === プライベートIPアドレス(ローカルIPアドレス)は、プライベートネットワーク(外部から利用できない社内[[Local Area Network|LAN]]など)のアドレスとして使うことができる。異なるプライベートネットワークを相互接続して[[ルーティング]]することも可能である。 プライベートIPアドレスとして、次のアドレス空間が予約されている。ネットワークの規模に応じて、使い分ける必要がある。 {| class="wikitable" !クラス !範囲 !サブネットマスク !アドレス数 |- |クラスA |10.0.0.0-10.255.255.255 |255.0.0.0 |16,777,216 |- |クラスB |172.16.0.0-172.31.255.255 |255.255.0.0 |2,097,152 |- |クラスC |192.168.0.0-192.168.255.255 |255.255.255.0 |65,536 |} === リンクローカルアドレス === [[Microsoft Windows|Windows]]などでは、IPアドレスが設定されておらず、DHCPサーバも見つからない場合には、自動的に169.254で始まるクラスBのIPアドレスが振られる([[APIPA]]という機能)。 これはリンクローカルアドレスと呼ばれ、単一のLAN内での通信に使うことができるが、[[ルーティング]]ができないなどプライベートアドレスとは異なるものである。 === プライベートIPアドレスとインターネット === プライベートIPアドレスとグローバルIPアドレスを相互変換することにより、インターネットに接続することができる。その方法として、NAPT(実装としては[[ネットワークアドレス変換|IPマスカレード]]やipfwなど)や[[プロキシ|プロキシサーバ]]がある。 [[インターネットサービスプロバイダ|インターネット接続サービス]]によっては、インターネットに接続する機器にグローバルIPアドレスではなく、このプライベートIPアドレスを割り当てることもある。 プライベートIPアドレスとこれに関する仕組みによって、グローバルIPアドレスを多量に消費することなくインターネットに接続できる機器を増やすことができる。 == 特殊用途のIPアドレス == 下記のアドレスは特殊な用途に使われるため、機器に割り振ることはできない。 * ホスト部の2進数表現が全て1 (例:192.168.170.255/24) *: ネットワークに対する[[ブロードキャスト]]アドレスとして用いられる。 * ホスト部の2進数表現が全て0 (例:192.168.170.0/24) *: ネットワーク自体を指すアドレスとして用いられる。本来これはネットワーク構成図やサーバソフトウェアの設定などにおける表記上の約束事にすぎず、実際には必ずしも使えないわけではないが、動作が保証されないので避けたほうがよい。また過去においては、ブロードキャストアドレスとしてこの形式を用いるOSも存在した。 * 127.0.0.0/8 (よく使われるのは127.0.0.1) *: その機器自身を表すローカルループバックアドレスとして用いられる。 == IPアドレスの付与 == グローバルIPアドレスは、まずインターネットレジストリ([[Asia-Pacific Network Information Centre|APNIC]]や[[日本ネットワークインフォメーションセンター|JPNIC]]など)からISPにまとまった単位で付与される。これを'''割り振り''' (allocation) という。ISPは、末端の利用者(個人、法人など)に対して、利用契約に基づいてIPアドレスを払い出す。これを'''割り当て''' (assignment) という。かつて、一部の大学やIT企業が非営利でインターネットを支えていた時代には、レジストリからこれら組織に直接割り当てられる例が多かったが、今日では商用ISPが発達したため、新規の割り当てではそのような例は少ない。インターネットレジストリにもICANN -> RIR(Regional Internet Registry) -> NIR(National Internet Registry) -> LIR(Local Internet Registry)といった階層構造が存在する。 参考: [http://www.nic.ad.jp/ja/basics/terms/allocation-assignment.html インターネット用語1分解説 - 割り振り(Allocation)、割り当て(Assignment)とは] 個人契約者の場合、グローバルIPアドレス1個を動的に割り当てる(接続ごとにIPアドレスが変わることがある)ものがほとんどである。ただし、ISPや契約プランによっては、プライベートアドレスを割り当てるもの、グローバルアドレス1個を固定で割り当てるもの、複数のグローバルアドレスを固定で割り当てるものもある。割り当てのプロトコルは、[[ダイヤルアップ接続]]では[[Point-to-Point Protocol|PPP]]、[[ADSL]]・[[FTTH]]などではPPPoE、[[ケーブルテレビ]]や公衆無線インターネット([[ホットスポット (無線LAN)|ホットスポット]])では[[Dynamic Host Configuration Protocol|DHCP]]によることが一般的である。 法人契約の場合は、[[サーバ]]を運用すること、取引先等とのデータのやりとりにおいてIPアドレスによるアクセス制限がある場合があることなどの理由により、複数のグローバルアドレスを固定で割り当てる契約が一般的である。 なお、家庭内や組織内でのプライベートアドレスの割り当ては、DHCPによることが一般的である。ただし、サーバやルータなど固定アドレスを必要とするものや、割り当てを厳密に管理したい場合には固定の割り当てが行われる。 == IPアドレスと個人情報 == 近年、個人情報保護や[[コンピュータセキュリティ|セキュリティ]]の観点から、IPアドレスは[[個人情報]]ではないのか、IPアドレスから個人情報やプライバシーを暴露されるのではないか、といった懸念が多く見られるようになってきている。しかしIPアドレスは公開されるものであり、インターネットの仕組みは、それを前提として構築されている。 === IPアドレスから分かること === TCP/IP を用いた通信では、常に自分のIPアドレスが通信相手に伝達される。例外として通信経路に[[ゲートウェイ]]([[プロキシ|プロキシサーバ]]等)がある場合にはゲートウェイのIPアドレスが伝達されるが、これもゲートウェイには自分のIPアドレスが伝達される。 このIPアドレスから情報を得るには [[WHOIS]] や [[Domain Name System|DNS]] を用いる。WHOIS はIPアドレスを割り振られている[[ネットワーク管理者]]に関する情報を得られ、DNS はIPアドレスからホスト名を得られる。これらによって得られる情報のうち、登録組織名やホスト名から接続元の場所が得られる。大抵は[[インターネットサービスプロバイダ|プロバイダ]]名と地域が分る程度だが、会社や大学に割り振られている場合には接続元の住所が得られる事もある。 上記以外の個人情報(氏名・詳細な住所・電話番号・メールアドレスなど)をIPアドレスのみから知ることは、ISP等から個人情報と接続記録が漏洩しない限り不可能である。したがって、IPアドレスを記録・公開しても、それが現実空間において即詳細な個人情報の暴露につながるわけではない。 ただし、インターネット世界においてはIPアドレスは個人ユーザーのパソコンまたは個人契約のサーバを特定する物であり、[[電子掲示板|掲示板]]や[[ウィキペディア]]の投稿記録にユーザー個人のIPアドレスは残されている。掲示板やチャットではあらかじめ特定のIPアドレスを入力する事で対象となるユーザーの投稿をブロックする事が可能であり、ウェブサイトに仕組まれた[[アクセス解析]]によって、IPアドレス番号をもつユーザーが何時に来訪したかを調べる事が可能である。 その為、特定のユーザーとIPアドレスが連動して発覚した場合、特定ユーザーを追跡または排除する為にインターネット解析を使い、荒らしによる投稿の削除や、名前を変えてもIPアドレスをたどる事で個人サイトを荒らすなどの、個人情報(氏名・詳細な住所・電話番号など)を公表しないまでも、インターネット空間上におけるストーカー行為の補助と判断される場合がある。 しかし、あるIPアドレスを利用した者が、名誉毀損など何らかの犯罪を犯した場合、警察によってそのIPアドレスを割り振られているプロバイダに連絡が入り、警察は法的措置に基づいてIPアドレスを使用した個人の情報を公開するようプロバイダに請求する。従って、個人間ではIPアドレスで個人情報を取り出すことは不可能だが、警察への告訴や、民事訴訟などの手続きなどを経ると当該IPアドレスを使用した個人を割り出すことができる。また、IPアドレスを使用した者の情報はプロバイダによって調べられるので、仮にあるIPアドレスを使用した者が何らかの不正を行ったことを、そのIPアドレスから判明するプロバイダに通報すると、プロバイダは基本的には内規に基づいて利用停止などの措置を執ることがある。 == 関連項目 == * [[IPアドレス枯渇問題]] * [[IPv4]] * [[IPv6]] * [[Domain Name System|DNS]] * [[ホスト名]](ドメイン名) * [[Dynamic Host Configuration Protocol|DHCP]] * [[MACアドレス]] * [[ポート番号]] * [[Mobile IP]] * [[サブアロケーション]] * [[2ちゃんねる]] - IPアドレス特定による問題が掲載。 * [[裏2ちゃんねる]] * [[ワンクリック契約]] - ワンクリック詐欺とも。IPアドレスに割り当てているプロバイダ名や都道府県名などを元に個人情報を取得可能であると主張する脅しの一種。 == 外部リンク == * [http://www.styleua.com/plus.html your IP address] * [http://www.iphiroba.jp/index.php IPひろば] - IPアドレス検索 * [http://www.kensaku-engine.com/longip.html ロングIPアドレスへの変換] * [http://shizuoka.cool.ne.jp/mots/notes/address.html IPアドレスクラス] {{DEFAULTSORT:IPあとれす}} [[Category:インターネットのプロトコル]] [[Category:識別子]] [[Category:チャクウィキで新規作成を禁止された記事]]