分享各种网络资源
是我乃至整个互联网的精髓所在
最新公告:
  • 开启被动注册模式,详情点击这里,同时接小单,QQ:330733312
  • 目前站点正在不断折腾和调试中,如有问题请见谅
     您目前所在位置: 站点首页 » WordPress » WordPress 代码 » WordPress后台登陆成功/失败邮件提醒
  • WordPress后台登陆成功/失败邮件提醒

  • 登陆成功提醒
  • 登录失败提醒
  • WordPress后台登陆成功/失败邮件提醒-BanYuner

    之前使用的主题中是内置这个功能的,我也是开启了这个功能的,开启之后,就可以看到不断有人在尝试我后台的账号密码,所以当时也安装了插件来限制登录。但是说实话,如果有技术的博客,真的想要黑你站点的话,我觉得也没有什么效果的。

    这里我就不解释后台的重要性了,直接附上相关代码,大家觉得要是可以的话,可以考虑添加:

    登陆成功提醒

    /*****************************************************
    函数名称:wp_login_notify v1.0 by DH.huahua. revise 麦田一根葱
    函数作用:有登录wp后台就会email通知博主
    ******************************************************/
    function wp_login_notify()
    {
    date_default_timezone_set('PRC');
    $admin_email = get_bloginfo ('admin_email');
    $to = $admin_email;
    function getIP() {
    if (@$_SERVER["HTTP_X_FORWARDED_FOR"])
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if (@$_SERVER["HTTP_CLIENT_IP"])
    $ip = $_SERVER["HTTP_CLIENT_IP"];
    else if (@$_SERVER["REMOTE_ADDR"])
    $ip = $_SERVER["REMOTE_ADDR"];
    else if (@getenv("HTTP_X_FORWARDED_FOR"))
    $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (@getenv("HTTP_CLIENT_IP"))
    $ip = getenv("HTTP_CLIENT_IP");
    else if (@getenv("REMOTE_ADDR"))
    $ip = getenv("REMOTE_ADDR");
    else
    $ip = "Unknown";
    return $ip;
    }
    $ip = getIP() ;
    $iplist=list($ip1, $ip2) = split ('[,]', $ip);
    function getIPLoc_QQ($ip1){
    $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$ip1;
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
    $result = curl_exec($ch);
    $result = mb_convert_encoding($result, "utf-8", "gb2312");
    curl_close($ch);
    preg_match("@<span>(.*)</span></p>@iU",$result,$ipArray);
    $loc = $ipArray[1];
    return $loc;
    }
    $subject = '你的博客空间登录提醒';
    $message = '你好!你的博客(' . get_option("blogname") . ')有登录!<br/>' . '请确定是您自己的登录,以防别人攻击!登录信息如下:<br/>' . '登录名:' . $_POST['log'] . '<br/>' .'登录时间:' . date("Y-m-d H:i:s") . '<br/>' .'登录IP:'. $ip1 .'('. getIPLoc_QQ($ip1).')';
    $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');
    

    代码中的IP地址是通过腾讯的IP分享计划来获取的。

    登录失败提醒

    /*****************************************************
    函数名称:wp_login_failed_notify v1.0 by DH.huahua. revise 麦田一根葱
    函数作用:有错误登录wp后台就会email通知博主
    ******************************************************/
    function wp_login_failed_notify()
    {
    date_default_timezone_set('PRC');
    $admin_email = get_bloginfo ('admin_email');
    $to = $admin_email;
    function getIP() {
    if (@$_SERVER["HTTP_X_FORWARDED_FOR"])
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if (@$_SERVER["HTTP_CLIENT_IP"])
    $ip = $_SERVER["HTTP_CLIENT_IP"];
    else if (@$_SERVER["REMOTE_ADDR"])
    $ip = $_SERVER["REMOTE_ADDR"];
    else if (@getenv("HTTP_X_FORWARDED_FOR"))
    $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (@getenv("HTTP_CLIENT_IP"))
    $ip = getenv("HTTP_CLIENT_IP");
    else if (@getenv("REMOTE_ADDR"))
    $ip = getenv("REMOTE_ADDR");
    else
    $ip = "Unknown";
    return $ip;
    }
    $ip = getIP() ;
    $iplist=list($ip1, $ip2) = split ('[,]', $ip);
    function getIPLoc_QQ($ip1){
    $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$ip1;
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
    $result = curl_exec($ch);
    $result = mb_convert_encoding($result, "utf-8", "gb2312");
    curl_close($ch);
    preg_match("@<span>(.*)</span></p>@iU",$result,$ipArray);
    $loc = $ipArray[1];
    return $loc;
    }
    $subject = '你的博客空间登录错误警告';
    $message = '你好!你的博客空间(' . get_option("blogname") . ')有登录错误!<br/>' . '请确定是您自己的登录失误,以防别人攻击!登录信息如下:<br/>' . '登录名:' . $_POST['log'] . '<br/>' .'登录密码:' . $_POST['pwd'] . '<br/>' .'登录时间:' . date("Y-m-d H:i:s") . '<br/>' .'登录IP:'. $ip1 .'('. getIPLoc_QQ($ip1).')';
    $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');
    

    关注我们 打赏 分享此文

    微信扫码,关注我们

    扫码,支持我

    WordPress后台登陆成功/失败邮件提醒

    支付宝(点击图片切换)

    扫码,支持我

    WordPress后台登陆成功/失败邮件提醒

    微信(点击图片切换)

    扫码,手机看

    WordPress后台登陆成功/失败邮件提醒
    匿名

    个人评价:┃草根博主┃站点无技术含量┃文章内容不够吸引人┃转载内容随处可见┃资源均来自网络┃分享是我的宗旨,也是这个站点存在意义,分享的东西你现在可能不需要,但是我相信只要在某个时间你需要的时候能在这里找到,那么我就是成功的

    WordPress后台登陆成功/失败邮件提醒
    5 + 3 =
    1. 2楼
      feedme
      最后评论时间:2017/02/06 11:49
      来自天朝的朋友 谷歌浏览器 Windows 10 吉林省四平市 联通
      请问这个要加在哪里?另外邮箱在哪里设置呢?
      feedme 9个月前 (02-06)回复
      • 帅气小琦琦
        最后评论时间:2017/10/20 15:02
        来自天朝的朋友 谷歌浏览器 Windows 10 湖北省武汉市 联通
        @feedme 这个是直接添加到你主题目录下function文件里面的,最后一个?>之前,邮箱方面是不用设置的,默认是直接发送给管理员邮箱
        帅气小琦琦    20小时前回复
    2. 1楼
      楚书业
      最后评论时间:2016/10/01 10:16
      来自天朝的朋友 QQ浏览器 Windows 10 福建省 移动
      :oops: so good!
      楚书业 1年前 (2016-10-01)回复