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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

解決済

IPアドレスが二種類ある?

hana_hana
hana_hana

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

1回答

0評価

0クリップ

662閲覧

投稿2019/08/13 12:41

編集2022/01/12 10:58

###質問
下記のようにIPアドレスの表示が変わってしまうのはなぜでしょうか?

・WordPressのheader.phpで、echo $_SERVER['REMOTE_ADDR'];を書いたときに、自分のサイトに表示されるもの
→11.1.11.11

https://www.cman.jp/network/support/go_access.cgi等にアクセスしたときに、こちらのサイトに表示されるもの
→111.111.111.11

###目的

もともとの目的は、下記↓functions.phpでメンテナンスモードを実装するときにIPアドレスで判定したいためです。

そのために自分のIPアドレスが必要なんですが、上のように2種類あるせいで★にどちらを書けば正解なのか混乱しています。

function my_maintenance_mode() { $getip = $_SERVER['REMOTE_ADDR']; if( $getip != '★' ){ wp_die('メンテナンス中'); } } add_action( 'get_header', 'my_maintenance_mode' );

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

mokemokechicken
mokemokechicken

2019/08/13 12:50

その wordpress のサーバは、どこに置いてありますか? 外部のどこかでしょうか? それとも今お使いのPCと同一LAN内などでしょうか?
hana_hana
hana_hana

2019/08/13 12:54

Xサーバーさんと契約していますので、具体的な場所はわかりかねますが、外部のということになると思います。すると(A)の場合、Xサーバーさんの何かの情報が表示されているだけなのでしょうか?もしそうならば目的の★には一体何を書けば……
mokemokechicken
mokemokechicken

2019/08/13 13:06

外部、になりますね。 通常外部のサーバにアクセスするときの、PCのIPアドレスは同じになるはずです\(B になるはず\)。 可能性としてあるかな、と思うのは 途中にロードバランサーとか挟まったり、Proxyが挟まったりしているということです。 リクエストHeaderを全て表示してみて、以下のような X-Forwarded-For, X-Real-IP のようなのは混じってないでしょうか? https://christina04\.hatenablog\.com/entry/2016/10/25/190000
hana_hana
hana_hana

2019/08/13 13:22 編集

>リクエストHeaderを全て表示 表示方法がわからないのですが、おしえていただけませんでしょうか? ちなみに下記2通りを試してみたものの【コードとエラー】でした。 【コードとエラー】その1 <\?php \$myHeader = \$_SERVER\['HTTP_X_MY_HEADER'\]; var_dump\( \$myHeader \); \?> ↓ Notice: Undefined index: HTTP_X_MY_HEADER in /export/user/b/zjp_73a14b/live_720548/var/wordpress/wp-content/themes/test/header\.php on line 46 NULL 【コードとエラー】その2 <\?php foreach \(getallheaders\(\) as \$name => \$value\) { echo "\$name: \$value\\n"; } \?> ↓ Fatal error: Uncaught Error: Call to undefined function getallheaders\(\) in /export/user/b/zjp_73a14b/live_720548/var/wordpress/wp-content/themes/test/header\.php:47\.\.\.\.\.\.(以下略)
mokemokechicken
mokemokechicken

2019/08/13 13:25

var_dump\(\$_SERVER\) とかでどうでしょうか?
hana_hana
hana_hana

2019/08/13 13:32 編集

おお、ごちゃごちゃ出てきました。ありがとうございます。 この中に「X-Real-IP」は見当たりませんが、下記がありました。 \["HTTP_X_FORWARDED_FOR"\]=> string\(14\) "111\.111\.111\.11" そしてこの「111\.111\.111\.11」という値は(B)でした。
hana_hana
hana_hana

2019/08/13 13:31

ということは、目的のためのコードは、こちら↓で正解でしょうか?! function my_maintenance_mode\(\) { \$getip = \$_SERVER\["HTTP_X_FORWARDED_FOR"\]; if\( \$getip != '111\.111\.111\.11' \){ wp_die\('メンテナンス中'\); } } add_action\( 'get_header', 'my_maintenance_mode' \);
mokemokechicken
mokemokechicken

2019/08/13 13:36

そうですね、たぶん、それで良いんですが、 保険のために\(間にいるであろう\?LoadBalancerかProxyが外れても問題ないように\) \$remote_addr = \$_SERVER\['REMOTE_ADDR'\]; \$forwarded_addr = \$_SERVER\["HTTP_X_FORWARDED_FOR"\]; \$my_ip = '111\.111\.111\.111'; として、 if \(\$remote_addr != \$my_ip && \$forwarded_addr != \$my_ip\) { wp_die\('\.\.\.'\); } の方が気持ち的には安心な気がします。
mokemokechicken
mokemokechicken

2019/08/13 13:38

あと、ご自宅からのアクセスの場合、固定IPの契約をしていないと モデムやルーターなどを再起動したり\(そうでなくてもいつのまにか\)IPアドレスが変わることはあるので 注意したほうがいいかもしれないです。
hana_hana
hana_hana

2019/08/13 13:40

そうさせて頂きます。サーバーのことは(も)まったくわからないので、大変勉強になりました。どうもありがとうございます。 IPアドレス変更の件も注意いたします。細部までお気遣い感謝です。 ぜひベストアンサーを差し上げたいので、大変お手数で申し訳ございませんが、もしよろしければご回答欄にひとことご記入頂けましたら幸いです。
mokemokechicken
mokemokechicken

2019/08/13 13:42

ありがとうございます。簡単にポイントだけ回答に書きました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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