2017-09-01 7 views
1

私はフォーム検証でアキスメットを実装したいんだけど、私は提出してたときに、私は実行してIPアドレスを必要としていますローカルでWordPressのプラグインを開発:私は戻って::1を得るMAMPのローカルホストで自分のIPアドレスを変更するにはどうすればよいですか?

function check_ip_address() { 
    if (isset($_SERVER['REMOTE_ADDR'])) : 
     $ip_address = $_SERVER['REMOTE_ADDR']; 
    else : 
     $ip_address = "undefined"; 
    endif; 
    return $ip_address; 
} 
echo check_ip_address(); 

。私はこの問題を解決するために研究したとき、私はから固体答えを見つけられませんでした:

::1を解決する方法を研究したとき、私はのsudo示唆Should a MAMP return ::1 as IP on localhost?が見つかりました:

sudo vi /etc/apache2/httpd.conf 

だから私はMAMP/conf/apache/httpd.confに移動し、ライン48 FRを変更しようOM Listen 8888Listen 127.0.0.1に、私はエラーを取得し、Apacheが再起動しません。 $_SERVER['HTTP_USER_AGENT']から適切なIPを取得できるように、MAMP IPを変更するにはどうすればよいですか?

答えて

1

これは127.0.0.1に相当するIPv6ループバックアドレスであり、リモートアドレスはMAMPがローカルで実行されているので自分自身であり、リモートブラウザは同じマシン上にあるためです。

REMOTE_ADDRは、リクエストがどこから来たIPを表します。ほとんどのシナリオでは、これはIPと同じであるブラウザ・マシンは、オープンインターネット上で持っていますが、それは127.0.0.1::1ですので、ここでMAMPは、ネイティブのApacheを実行しています。あなたがドッキングウィンドウコンテナまたは仮想マシンを使用していた場合、それはあなたのコンテナを設定/ VMの指定された範囲のプライベートIPになります。

あなたが期待しているIPを取得するには、外部サービスを使用するか、デバッグのためにハードコードされたIPをAkismetに渡す必要がありますが、誰かがコメントしているIPを要求していると思われます。

関連する問題