WordPress のダッシュボードを見ると、バージョン 4.8 への更新が出ていたので、更新してみました。
普通は、更新されても何日か置いてから作業するのですが、週末で時間が取れることから上げてみることにしました。ただし、あまり重要ではないサーバーから。
その結果、面倒くさいことになりました。
ダッシュボードを開くと、ページ上部に以下のメッセージが表示されます。
Warning: inet_pton(): Unrecognized address unknown in /....../wp-admin/includes/class-wp-community-events.php on line 268 Warning: inet_pton(): Unrecognized address unknown in /....../wp-admin/includes/class-wp-community-events.php on line 274 Warning: inet_ntop(): Invalid in_addr value in /....../wp-admin/includes/class-wp-community-events.php on line 274
Warning なので、サイト全体の動きには影響しないのですが、ダッシュボードホームを開く度に、画面が下方に押しやられるので、ちょっと使いづらい。
ダッシュボード以外のページには影響ないみたいです。
Warning に続く、inet_pton と inet_ntop がエラーを出している関数だと思います。通常はプラグイン名なのですが、wp-admin 以下の include フォルダーが表示されていることから、WordPress 本体の問題に見えます。
エラーメッセージを検索してみると、IPアドレスからホスト名への逆引きに失敗しているような様子。address はIPアドレスのことなんでしょう。
問題のファイルを開いてみると、次のようになっているのでやっぱり IPアドレスからの逆引きっぽい。
266 // These functions are not available on Windows until PHP 5.3.
267 if ( function_exists( 'inet_pton' ) && function_exists( 'inet_ntop' ) ) {
268 if ( 4 === strlen( inet_pton( $client_ip ) ) ) {
269 $netmask = '255.255.255.0'; // ipv4.
270 } else {
271 $netmask = 'ffff:ffff:ffff:ffff:0000:0000:0000:0000'; // ipv6.
272 }
273
274 $client_ip = inet_ntop( inet_pton( $client_ip ) & inet_pton( $netmask ) );
275 }
276
277 return $client_ip;
バージョンアップしていない WordPress には影響ないので、おそらく WordPress 本体が原因と見て間違いないでしょう。
さて、対策はどうしましょう?頑張って調べて対策しても、次のバージョンアップで上書きされるでしょうからね。
被害が出ているサーバーに関しては、次のバージョンアップを待つのがよさそう。
まだ 4.8 にバージョンアップしていないサーバーに関しては、更新せずにそのまま使う事にします。
2017/07/09
WordPress 本体の更新がないので、エラーメッセージを検索してみると、
https://core.trac.wordpress.org/ticket/41083
のページが見つかりました。
パッチが出ているようです。
私は次のアップデートを待つつもりです。
2017/11/01
複数のWordPressサイトを管理していますが、不思議なことに同じ WordPress 4.8.x でも、この現象が出るサイトと出ないサイトがあることがわかりました。
どうも、WordPress をPPPoEで運用しているサイトのみで発生している模様。もっと書くと、公開WebサイトのIPアドレスがPPPoE側だと発生。
直接Ethernet経由でネットに接続しているサーバーでは発生していません。
2017/11/16
WordPress 4.9 で解決しました。
この間、長かったわ〜。