Gimhoy's Blog

您曾经浏览过

将IP转换成归属地在WordPress中的应用:登陆者IP所在地

本文最后更新于2013年7月21日,已超过三年没有更新,如果文章内容失效,请反馈给我们,谢谢!

前几天写了一篇文章《WordPress后台登陆邮件提醒》,图中显示了登陆者的IP所在地,有人问如何实现,今天就把这个功能加上。。

先上效果图:
wp-login-failed

首先需要做一些准备工作:WordPress获取真实IP,以及将IP转换成归属地

然后将《WordPress后台登陆邮件提醒》中提到的代码改成下面的代码:

一、登录成功提醒

/*****************************************************
 函数名称:wp_login_notify v1.0 by DH.huahua. 
 函数作用:有登录wp后台就会email通知博主
 * Modified Gimhoy (http://blog.gimhoy.com)
******************************************************/
function wp_login_notify()
{
    date_default_timezone_set('PRC');
    $admin_email = get_bloginfo ('admin_email');
    $to = $admin_email;
	$subject = '你的博客空间登录提醒';
	$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录!</p>' . 
	'<p>请确定是您自己的登录,以防别人攻击!登录信息如下:</p>' . 
	'<p>登录名:' . $_POST['log'] . '</p>' .
	'<p>登录时间:' . date("Y-m-d H:i:s") .  '</p>' .
	'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '</p>'.
	'<p>登录所在地:' . convertip($_SERVER['REMOTE_ADDR']) . '</p>';	
	$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
	$from = "From: "" . get_option('blogname') . "" <$wp_email>";
	$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
	wp_mail( $to, $subject, $message, $headers );
}
 
add_action('wp_login', 'wp_login_notify');

二、登录失败提醒

/*****************************************************
 函数名称:wp_login_failed_notify v1.0 by DH.huahua. 
 函数作用:有错误登录wp后台就会email通知博主
 * Modified Gimhoy (http://blog.gimhoy.com)
******************************************************/
function wp_login_failed_notify()
{
    date_default_timezone_set('PRC');
    $admin_email = get_bloginfo ('admin_email');
    $to = $admin_email;
	$subject = '你的博客空间登录错误警告';
	$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录错误!</p>' . 
	'<p>请确定是您自己的登录失误,以防别人攻击!登录信息如下:</p>' . 
	'<p>登录名:' . $_POST['log'] . '</p>' .
	'<p>登录密码:' . $_POST['pwd'] .  '</p>' .
	'<p>登录时间:' . date("Y-m-d H:i:s") .  '</p>' .
	'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '</p>'.
	'<p>登录所在地:' . convertip($_SERVER['REMOTE_ADDR']) . '</p>';		
	$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
	$from = "From: "" . get_option('blogname') . "" <$wp_email>";
	$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
	wp_mail( $to, $subject, $message, $headers );
}
 
add_action('wp_login_failed', 'wp_login_failed_notify');


免费获得每月10G空间+10G免费流量
No tags
  • Comment (4)
  • Trackback (1)
  • hazeGoogle ChromeWindowsUnited States2013/07/24 15:39@Ta

    请问appfog怎么绑定域名啊? 求教

    #1
    • GimhoyGoogle ChromeWindowsChina2013/07/25 01:59@Ta

      早就绑定不了了。。。反向代理吧~