質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
IPv6

IPv6は、インターネットプロトコルの一つ。主流となっているIPv4に変わるものとして設計されました。IPアドレスの需要の増大を予見して開発されたもので、従来よりも多くのIPアドレスの作成が可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4102閲覧

v6プラス(v6オプション)をphpで判定したい

kenn

総合スコア15

IPv6

IPv6は、インターネットプロトコルの一つ。主流となっているIPv4に変わるものとして設計されました。IPアドレスの需要の増大を予見して開発されたもので、従来よりも多くのIPアドレスの作成が可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/12/24 09:52

###v6プラス(v6オプション)をphpで判定する方法を知りたい

「IPv4」と「IPv6」については、下記の方法で、判定することができるようです。

同様に、『v6プラス(v6オプション)』を判定する方法がありましたら、
ご教授願います。

『IPv6でアクセスすると"via IPv6"って出るやつ』
https://qiita.com/ANNotunzdY/items/17805a4d7a2d797822ea



###参考:「IPv4」と「IPv6」の判定コード

<a href="https://github.com/kibousoft/viav6_web/" style="text-decoration: none; color: white;"> <?php $ip = $_SERVER['REMOTE_ADDR']; $headers = apache_request_headers(); if ($headers['X-Forwarded-For']) { $ip = $headers['X-Forwarded-For']; } if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $ip)) { echo '<div style="background: linear-gradient(#FF0000, #FF99CC); padding: 5px; border: 1px solid #333333; border-radius: 3px; font-size: 13px; width: 50px; text-align: center; font-family: sans-serif;">via IPv4</div>'; } else { echo '<div style="background: linear-gradient(#0000FF, #99CCFF); padding: 5px; border: 1px solid #333333; border-radius: 3px; font-size: 13px; width: 50px; text-align: center; font-family: sans-serif;">via IPv6</div>'; } ?> </a>

###試したこと

V6プラスについての情報は、下記の通りです。
wikipedia:V6プラス

「v6プラス」と「v6オプション」
という2通りの呼び名があるようです。

判定できるサイトがあるのかを調べた所、下記のサイトは判定できているようです。
実際に判定できているサイト:日本ネットワークイネイブラー株式会社 判定サイト

###補足情報

phpを使って判定したいです。

 
お詳しい方がいましたら、
どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

れっさー君いわく

あるよ!現在のIPv6オプションの利用状況や適用状況は、確認くんにアクセスすると知ることができるんだ。現在の"ゲートウェイの名前"の項目に「flh2-xxx-xxx-xxx-xxx.tky.mesh.ad.jp」と表示されていればIPv6オプションが適用されている状態といえるよ。

mesh.ad.jpのサブドメイン

  • tky.mesh.ad.jp - 東京
  • hyg.mesh.ad.jp - 兵庫
  • stm.mesh.ad.jp - 埼玉
  • kng.mesh.ad.jp - 神奈川
  • gif.mesh.ad.jp - 岐阜

・・・
47都道府県単位かな

投稿2017/12/27 03:35

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/27 03:36

※ ほかプロバイダはべつです。
guest

0

ところで、v6プラスを判別したい理由は何でしょうか?


v6 プラスかどうかを調べる方法としては、アクセスしている IP アドレスが、v6プラスサービスで提供されている IP アドレスかどうかを調べることになると思います。

しかし、v6プラスで使用しているIPアドレスの範囲は公開されていないので、調べるのはかなり大変ではないかと思われます。(大雑把でもOKなら jpne に割り当てられている IP アドレス全てを v6 プラスと判断すればいいのかもしれませんが...)


なお、質問で記載されている 「日本ネットワークイネイブラー株式会社」は、V6プラスをISP向けに提供している会社ですので、アクセスしてきたユーザーが「自社サービスのv6プラスを使用しているか」を判別するのは簡単だと思います。

投稿2017/12/24 13:00

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenn

2017/12/24 13:25

ご連絡頂き誠にありがとうございます。 サイト内に、ユーザーの使っている環境の判定ページを作ろうと考え、判定できたら と考えております。 ご提案頂いた『jpne に割り当てられている IP アドレス全てを v6 プラスと判断』につきましては、上記のphpプログラムのような形で、『jpne に割り当てられている IP アドレス』なのかどうかを判定することは可能なのでしょうか? それとも、jpneにしか、分からない内容なのでしょうか? どうぞよろしくお願い致します。
退会済みユーザー

退会済みユーザー

2017/12/24 14:05

極論をいえば、 国別ipと同じですべてが連続している可能性は低いですよ https://ipv4.fetus.jp
kenn

2017/12/25 13:22

ご連絡頂き誠にありがとうございます。 サンプルソースのように、IPアドレスから類推して、v6プラス(v6オプション)を判定できたらと思っていたのですが、現実的に他に方法はない、ということになりますでしょうか? 他の『jpne に割り当てられている IP アドレス』から類推するなど、どんな方法でも良いのですが、もしv6プラス(v6オプション)を判定する方法が分かりましたら、ご教授頂けますと幸いです。 引き続きどうぞよろしくお願い致します。
CHERRY

2017/12/25 13:56 編集

IPアドレスは割り当てられたIPアドレスの残りが少なくなったら、次の割当を申請する運用が多いので、大手だと連続したブロックの1つだけという可能性は少ないでしょうね。
CHERRY

2017/12/25 14:03 編集

とりあえず、判定ミスがどれぐらいあるか判断できませんが、アクセスしてきた IP アドレスを逆引きしたドメイン名に「enabler.ne.jp」を含んでいるかを調べることで、ある程度は、jpne からのアクセスと判断できると思います。(実際にいくつかの v6プラス契約の箇所で、逆引きして 〜〜.v4.enabler.ne.jp になっているのを確認済みです。)
izkn

2017/12/25 14:23

BIGLOBE の IPv6オプションだと JPNE の判定サイトで以下の結果になりました。 結果 :OK : All-OK(IPv6オプションHGW)(9999) BiglobeのIPv6オプション(IPv6 IPoE + IPv4 over IPv6) では flh2-ipaddress.osk.mesh.ad.jp のようになっています。 flh2 & (tky or osk) がキーワードになるのかな。
kenn

2017/12/25 23:27

CHERRYさん izknさん メッセージありがとうございます。 〜.v4.enabler.ne.jp もしくは 〜.osk.mesh.ad.jp に該当するIPアドレスで、v6プラス(v6オプション)になるということになりそうですね。 その場合、 下記の記述について、 if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $ip)) { を if (preg_match('enabler.ne.jp','osk.mesh.ad.jp', $ip)) { のようにすれば、良いでしょうか? 複数の検索の方法が分からなかったため、もしご存じでしたら、よろしくお願いします。
CHERRY

2017/12/25 23:35

izkn さん biglobe ですが、「v6プラス」と「IPv6オプション」は、接続方式は同じですが、別のサービスです。 「v6プラス」は、jpne が、VNE を提供していて、「IPv6オプション」は、biglobe 自身が、VNE を提供しています。(VNE 提供会社の違いだけですが...) 探してみたら https://v6-hikari.net/biglobe-ipv6option/ に説明がありますね。
CHERRY

2017/12/26 00:13 編集

コメントのやりとりから、「VNE によるインターネット接続を区別したい」という質問と解釈すると 他にも VNE を提供している会社は、いくつかありますので、書いておきます。 ( 質問では、「v6プラス」と書かれていたので、jpne のサービスについてだと考えていました。) 思いつく範囲で書き出すと... 1. 日本ネットワークイネイブラー ( jpne ) ( 「v6プラス」  http://www.jpne.co.jp/service/v6plus/ ) 2. BBIX ( 「IPv6 IPoE+IPv4 ハイブリッドサービス」 https://www.bbix.net/service/ipv6ipv4/ ) 3. インターネットマルチフィード ( 「transix IPv4インターネット接続オプションサービス(DS-Lite)」 http://www.mfeed.co.jp/transix/index.html ) 4. 朝日ネット 5. NTTコミュニケーション 6. biglobe ( 「IPv6オプション」 http://support.biglobe.ne.jp/ipv6/ ) 7. フリービット ( 「ISPプレミアム」 https://yournet.freebit.com/service/isp_ipv6/ ) VNE事業者は、2015年までは 1〜3の3社のみで、2016年以降に 4〜7が参入しています。 各社ともに基本的に ISP向けのサービスなので、個人向けには提供していないと思います。自社で、個人向けの回線提供をしている 朝日ネット、NTTコミュニケーション( OCN )、biglobe は、自社サービスで提供していると思いますが...
kenn

2017/12/26 02:26

お世話になっております。 大変詳しく教えて頂き、誠にありがとうございます。 朝日ネット/OCN/Biglobeの3社が、「IPv6オプション」を個人向けに、提供していると言うことなのですね。 「v6プラス」または、「v6オプション」を判定したいと考えた場合、 「v6プラス」については、 〜.v4.enabler.ne.jp もしくは 〜.osk.mesh.ad.jp に該当するIPアドレス 「v6オプション」については、 朝日ネット/OCN/Biglobe のIPアドレスから判定することで、その可能性を判定する程度までは、分かる、という認識で合っていますでしょうか? v6アドレスで、かつ上記に当てはまるかどうか?を確認する以外に、 v6プラス(v6オプション)を判定する方法をもしご存じでしたら、よろしくお願いいたします。
CHERRY

2017/12/26 03:47

うーん。 再度確認なんですが、v6プラスや準ずるサービスを判別したい理由は何でしょうか? v6プラス等は、終端(家の機器)からインターネット接続点までのフレッツ網内の接続方法が異なるだけで、インターネットにつながると 基本的に従来の IPv4 や IPv6 と変わりはありません。 従来に無かった新しいIPアドレスの種類が増えたわけじゃありませんので、判別する意味がないと思っています。v6プラス等を判別する意味があるのは、NTTフレッツ網の中にあるNTTやISPの機器だけです。 IPv4 と IPv6 を判別したい理由は、サービスをIPv6に対応する判断材料にしたい等の理由があるので理解できます。 しかし、v6プラスだけを別に判断したいと言われると必要性が思い浮かばないです。
izkn

2017/12/26 05:23

CHERRYさん ご説明感謝します m(_ _)m そのあたりは理解しているつもりであります、はい。 flh2 と mesh.ad.jp だけで良さそうですね。 …で、質問者氏が勘違いしているようなので、mesh イコール BIGLOBE です。flh2 と mesh.ad.jp をキーにして判定できるのは、BIGLOBE の IPv6オプションです。他の自身がVNEを兼ねているプロバイダの情報を得たいなら、ここ teratail よりも 5ch(旧2ch)の方が良いと思います。プロバイダの利用者に聞いた方が早い。各プロバイダの過去スレッドを調べるなり、現行スレッドで質問してみるなりして、v6オプション判定のキーになる情報を探しましょう。 > v6プラスや準ずるサービスを判別したい理由は何でしょうか? v6プラス(v6オプション)導入済みではないなら、各プロバイダのサービスのページへのリンクを表示するとか。儲かるのかしら。 以上、mesh で昔を思い出すおっさんでした。
退会済みユーザー

退会済みユーザー

2017/12/26 10:43

ちなみに osk:大阪 v4:ipv4 だろうな。 sjk.mesh~とかもある気がするな
kenn

2017/12/27 03:21

ありがとうございます。 市場調査のためにv6プラス(v6オプション)のシェアを、正確に判定することが出来ないか、調べており、なかなか困難な部分もあることが分かり、大変勉強になりました。 コメントして頂いたみなさま、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問