WordPress4.8: Warning: inet_pton(): Unrecognized address unknown

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 で解決しました。
この間、長かったわ〜。

コメントを残す