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

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

ただいまの
回答率

91.25%

  • PHP

    15691questions

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

  • IPv6

    28questions

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

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 129

kenn

score 9

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を使って判定したいです。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

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 12:36

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

    キャンセル

0

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


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

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


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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:25

    ご連絡頂き誠にありがとうございます。

    サイト内に、ユーザーの使っている環境の判定ページを作ろうと考え、判定できたら
    と考えております。

    ご提案頂いた『jpne に割り当てられている IP アドレス全てを v6 プラスと判断』につきましては、上記のphpプログラムのような形で、『jpne に割り当てられている IP アドレス』なのかどうかを判定することは可能なのでしょうか?
    それとも、jpneにしか、分からない内容なのでしょうか?

    どうぞよろしくお願い致します。

    キャンセル

  • 2017/12/24 23:05

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

    キャンセル

  • 2017/12/25 22:22

    ご連絡頂き誠にありがとうございます。

    サンプルソースのように、IPアドレスから類推して、v6プラス(v6オプション)を判定できたらと思っていたのですが、現実的に他に方法はない、ということになりますでしょうか?

    他の『jpne に割り当てられている IP アドレス』から類推するなど、どんな方法でも良いのですが、もしv6プラス(v6オプション)を判定する方法が分かりましたら、ご教授頂けますと幸いです。

    引き続きどうぞよろしくお願い致します。

    キャンセル

  • 2017/12/25 22:56 編集

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

    キャンセル

  • 2017/12/25 23:03 編集

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

    キャンセル

  • 2017/12/25 23: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) がキーワードになるのかな。

    キャンセル

  • 2017/12/26 08: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)) {
    のようにすれば、良いでしょうか?

    複数の検索の方法が分からなかったため、もしご存じでしたら、よろしくお願いします。

    キャンセル

  • 2017/12/26 08:35

    izkn さん

    biglobe ですが、「v6プラス」と「IPv6オプション」は、接続方式は同じですが、別のサービスです。

    「v6プラス」は、jpne が、VNE を提供していて、「IPv6オプション」は、biglobe 自身が、VNE を提供しています。(VNE 提供会社の違いだけですが...)

    探してみたら https://v6-hikari.net/biglobe-ipv6option/ に説明がありますね。

    キャンセル

  • 2017/12/26 09: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 は、自社サービスで提供していると思いますが...

    キャンセル

  • 2017/12/26 11:26

    お世話になっております。
    大変詳しく教えて頂き、誠にありがとうございます。
    朝日ネット/OCN/Biglobeの3社が、「IPv6オプション」を個人向けに、提供していると言うことなのですね。

    「v6プラス」または、「v6オプション」を判定したいと考えた場合、

    「v6プラス」については、
    〜.v4.enabler.ne.jp もしくは
    〜.osk.mesh.ad.jp
    に該当するIPアドレス

    「v6オプション」については、
    朝日ネット/OCN/Biglobe のIPアドレスから判定することで、その可能性を判定する程度までは、分かる、という認識で合っていますでしょうか?

    v6アドレスで、かつ上記に当てはまるかどうか?を確認する以外に、
    v6プラス(v6オプション)を判定する方法をもしご存じでしたら、よろしくお願いいたします。

    キャンセル

  • 2017/12/26 12:47

    うーん。
    再度確認なんですが、v6プラスや準ずるサービスを判別したい理由は何でしょうか?

    v6プラス等は、終端(家の機器)からインターネット接続点までのフレッツ網内の接続方法が異なるだけで、インターネットにつながると 基本的に従来の IPv4 や IPv6 と変わりはありません。
    従来に無かった新しいIPアドレスの種類が増えたわけじゃありませんので、判別する意味がないと思っています。v6プラス等を判別する意味があるのは、NTTフレッツ網の中にあるNTTやISPの機器だけです。

    IPv4 と IPv6 を判別したい理由は、サービスをIPv6に対応する判断材料にしたい等の理由があるので理解できます。
    しかし、v6プラスだけを別に判断したいと言われると必要性が思い浮かばないです。

    キャンセル

  • 2017/12/26 14: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 19:43

    ちなみに

    osk:大阪
    v4:ipv4

    だろうな。

    sjk.mesh~とかもある気がするな

    キャンセル

  • 2017/12/27 12:21

    ありがとうございます。

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

    コメントして頂いたみなさま、ありがとうございます。

    キャンセル

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

ただいまの回答率

91.25%

関連した質問

同じタグがついた質問を見る

  • PHP

    15691questions

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

  • IPv6

    28questions

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