如何找到请求我的xm​​lrpc.php文件wordpress的IP?

时间:2016-05-03 11:07:37

标签: php wordpress

我正在使用wordpress来处理流量非常高的网站。 php5-fpm的日志显示xmlrpc.php文件执行速度太慢。

[03-May-2016 16:47:32] WARNING: [pool www] child 17754, script '/var/www/html/test/xmlrpc.php' (request: "POST /xmlrpc.php") executing too slow (10.292389 sec), logging

我通过添加过滤器来禁用functions.php文件中的xmlrpc函数:

add_filter('xmlrpc_enabled', '__return_false');

但它不起作用。警告仍在出现。我认为一些机器人或IP正在打它。那么,我怎样才能找到哪个IP请求xmlrpc.php文件以便我可以禁用它?

1 个答案:

答案 0 :(得分:1)

当客户向xmlrpc.php发出请求时,我们可以使用没有操作挂钩。但我们可以使用wp-config.php

wp-config.php文件中尝试此操作:

function wpse37002439_get_ip_address() {
  if ( !empty($_SERVER['HTTP_CLIENT_IP']) ) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif( !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } else {
    $ip = $_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

if ( defined('XMLRPC_REQUEST') ) {
  $ip = wpse37002439_get_ip_address();
  $content = '[' . date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME'])
             . '] [CAPTURED IP: ' . $ip . '] [REMOTE_ADDR: ' . $_SERVER['REMOTE_ADDR'] . "] \n";
  file_put_contents(__DIR__.'/wp-content/xmlrpc_access.log', $content, FILE_APPEND);
}

确保xmlrpc_access.log文件可用。你可以自己改变它。

我强烈建议您查看this topic