Posts Tagged ‘ip’

WordPress自动封垃圾邮件IP的思路和实现方法

星期日, 八月 21st, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2287.html http://www.myzhenai.com/thread-17912-1-1.html
关键词: wordpress垃圾回复 wordpress封ip iptables封IP wordpress自动封IP wordpress自动封发垃圾邮件的IP
众所周知,WordPress有一个自动拦截垃圾回复的插件Akismet 但是这个插件有一个不方便的地方就是它只是在垃圾回复发布了才进行拦截, 但是这个难免也会涉及到数据库写入和删除,这无疑会增加服务器的负担, 所以我的思路是调用Akismet拦截垃圾回复的IP地址,并且用Shell脚本把这些IP写入到iptables防火墙过滤名单里. 当再收到这些IP发来的请求时,系统会自动将它们丢弃,不会进入系统操作了. 实现起来很简单, 现在我们来说一说实现的步骤.
一: 将以下代码添加到 /wp-admin/includes/class-wp-comments-list-table.php 的指定位置里, 有两个地方,一个是自定义函数,一个是添加自定义函数.
参考: WordPress获取垃圾回复IP地址的方法 http://www.myzhenai.com.cn/post/1875.html http://www.myzhenai.com/thread-16324-1-1.html

/** chong zhe li kai chi */
function my_spam_ip(){
    $aip = get_comment_author_IP(); /** 得到ip地址 */
    $txt = file_get_contents("/var/wwwroot/spam.log"); /** 对比ip地址是否存在文件内,防止重复输入 */
    $txt = preg_replace("/(\r\n|\n|\r|\t)/i", '', $txt);
    if (strpos($txt,$aip) === false) /** 如果文件内找不到这个ip地址 */
    {
        $handle = fopen("/var/wwwroot/spam.log","a+"); /** 打开文件并得到一个句柄,据说a+是写入? */
        fwrite($handle,$aip."\n"); /** 将获得的ip地址添加到文件中 */
    }
    echo "Spam IP: ".$aip."\n";
    fclose($handle); /** 关闭句柄 */
    }
/** dao zhe li jie shu  */

将这段代码添加在 /wp-admin/includes/class-wp-comments-list-table.php 文件里的 < ?php ?>符号内, 然后再将 my_spam_ip(); 这句添加到下行的下方.

$author_ip_url = add_query_arg( 'comment_status', 'spam', $author_ip_url );

class-wp-comments-list-table.php

class-wp-comments-list-table.php


class-wp-comments-list-table.php

class-wp-comments-list-table.php


二: 将以下Shell脚本代码保存为.sh后缀的脚本文件,上传到服务器指定目录, 然后在cron里添加一条定时任务.
参考: Linux下使用crontab添加定时任务 http://www.myzhenai.com.cn/post/1628.html

# !/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
path="/var/wwwroot/spam.log"
size=`ls -l $path|awk '{print $5}'`
if [ $size -gt 0 ];then
for i in $(< $path)
do
if [ $i != "" ];then
h=`grep -c $i /etc/sysconfig/iptables`
if [ $h -lt 1 ];then
iptables -I INPUT -s $i -j DROP
fi
fi
done
service iptables save
service iptables restart
IFS=$SAVEIFS
echo -n "" > $path
chown -R apache:apache $path
chmod 777 $path
fi

Shell脚本

Shell脚本


至此,设置完毕,然后你就会发现WordPress后台接收到垃圾回复就会越来越少了,因为只要你删除了的垃圾回复系统就会自动将它的IP地址进行过滤了.

PHP获取客户浏览器版本 系统版本 IP地址和IP所在国家源代码及例程

星期一, 八月 8th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2242.html http://www.myzhenai.com/thread-17902-1-1.html
关键字: php怎样获取客户浏览器 php怎样获取客户系统 php如何获取用户IP所在国家 php如何获取用户IP所在位置
演示地址: http://www.myzhenai.com.cn http://jiayu.mybabya.com/ http://tz.mybabya.com/ua.php
其实获取用户浏览器版本和系统版本都是根据用户浏览时提交的user agent信息来判断的, 对于用户的系统可以精确一些,但一些Linux系统还是无法作到获取精确的派生版本, 浏览器的获取就要难一些, 因为不同的浏览器,不同的版本的用户的user agent信息也都是不一样的. 这个只能是自己根据不同的需要进行修改. 这些图片是我在网络上收集并修改的.
一: 在源码目录中的functions.php文件中插入以下代码

/**
 * This is a small tool to obtain the user's browser to browse the system name and user name and address
 * Autor: RucLinux
 * Web: http://www.myzhenai.com.cn/ http://www.myzhenai.com/ http://www.haikou-china.com/ http://jiayu.mybabya.com/ http://www.0898-shop.com/
 */

/**
这是获取当前用户IP
 */

function get_ip() {
    $ip = $_SERVER["REMOTE_ADDR"]; /* 获取当前浏览用户地址,显示的是纯ip地址格式   */
    return $ip;
}

/**
这是获取当前用户IP所在位置
 */
function get_ip_address() {
    $chinaz = "http://www.baidu.com/baidu?wd="; /* 指定站长工具获取IP地址的页面地址,后边加上IP就可以了   */
    $ip = $_SERVER["REMOTE_ADDR"]; /* 获取当前浏览用户地址,显示的是纯ip地址格式   */
    $Source = file_get_contents($chinaz.$ip);  /* 获取网页源码,变量 $Source 即是当前IP地址的网页源码 */

    if ($Source !== ""){
        $aLeft = "$ip"; /* 第一次搜索的参数变量,第一次以这个为搜索条件,从这个变量开始搜索  */
        $aRight = ""; /* 第一次搜索的参数变量,搜索到这个变量就停止搜索,截取这中间的字符窜  */
        $Left = strpos($Source,$aLeft,0); /* 左边位置 */
        $Right = strpos($Source,$aRight,0); /* 右边位置 */
        $txit = substr($Source,$Left,$Right); /* 截取部份文本代码,第一个参数是要处理的字符窜,第二个参数是开始位置,第三个参数是结束位置 [第一次查询]*/
        $Left = strpos($txit,$aLeft,0); /* 左边位置 */
        $Right = strpos($txit,$aRight,0); /* 右边位置 */
        $txit = substr($txit,0,$Right); /* 截取部份文本代码,第一个参数是要处理的字符窜,第二个参数是开始位置,第三个参数是结束位置 [第二次查询]*/
        $txit = substr($txit,20); /* 截取部份文本代码,第一个参数是要处理的字符窜,第二个参数是开始位置, [第三次查询]*/
        $txit = str_replace(">","",$txit); /* 替换字符 */
        return $txit;
    }
}


/**
将所处国家代码转换为中文的国家名称
 */
function transCode($code) {
    $ind=array('AA'=>'阿鲁巴',
        'AD'=>'安道尔',
        'AE'=>'阿联酋',
        'AF'=>'阿富汗',
        'AG'=>'安提瓜和巴布达',
        'AL'=>'阿尔巴尼亚',
        'AM'=>'亚美尼亚',
        'AN'=>'荷属安德列斯',
        'AO'=>'安哥拉',
        'AQ'=>'南极洲',
        'AR'=>'阿根廷',
        'AS'=>'东萨摩亚',
        'AT'=>'奥地利',
        'AU'=>'澳大利亚',
        'AZ'=>'阿塞拜疆',
        'Av'=>'安圭拉岛',
        'BA'=>'波黑',
        'BB'=>'巴巴多斯',
        'BD'=>'孟加拉',
        'BE'=>'比利时',
        'BF'=>'巴哈马',
        'BF'=>'布基纳法索',
        'BG'=>'保加利亚',
        'BH'=>'巴林',
        'BI'=>'布隆迪',
        'BJ'=>'贝宁',
        'BM'=>'百慕大',
        'BN'=>'文莱布鲁萨兰',
        'BO'=>'玻利维亚',
        'BR'=>'巴西',
        'BS'=>'巴哈马',
        'BT'=>'不丹',
        'BV'=>'布韦岛',
        'BW'=>'博茨瓦纳',
        'BY'=>'白俄罗斯',
        'BZ'=>'伯里兹',
        'CA'=>'加拿大',
        'CB'=>'柬埔寨',
        'CC'=>'可可斯群岛',
        'CD'=>'刚果',
        'CF'=>'中非',
        'CG'=>'刚果',
        'CH'=>'瑞士',
        'CI'=>'象牙海岸',
        'CK'=>'库克群岛',
        'CL'=>'智利',
        'CM'=>'喀麦隆',
        'CN'=>'中国',
        'CO'=>'哥伦比亚',
        'CR'=>'哥斯达黎加',
        'CS'=>'捷克斯洛伐克',
        'CU'=>'古巴',
        'CV'=>'佛得角',
        'CX'=>'圣诞岛',
        'CY'=>'塞普路斯',
        'CZ'=>'捷克',
        'DE'=>'德国',
        'DJ'=>'吉布提',
        'DK'=>'丹麦',
        'DM'=>'多米尼加共和国',
        'DO'=>'多米尼加联邦',
        'DZ'=>'阿尔及利亚',
        'EC'=>'厄瓜多尔',
        'EE'=>'爱沙尼亚',
        'EG'=>'埃及',
        'EH'=>'西撒哈拉',
        'ER'=>'厄立特里亚',
        'ES'=>'西班牙',
        'ET'=>'埃塞俄比亚',
        'FI'=>'芬兰',
        'FJ'=>'斐济',
        'FK'=>'福兰克群岛',
        'FM'=>'米克罗尼西亚',
        'FO'=>'法罗群岛',
        'FR'=>'法国',
        'FX'=>'法国-主教区',
        'GA'=>'加蓬',
        'GB'=>'英国',
        'GD'=>'格林纳达',
        'GE'=>'格鲁吉亚',
        'GF'=>'法属圭亚那',
        'GH'=>'加纳',
        'GI'=>'直布罗陀',
        'GL'=>'格陵兰岛',
        'GM'=>'冈比亚',
        'GN'=>'几内亚',
        'GP'=>'法属德洛普群岛',
        'GQ'=>'赤道几内亚',
        'GR'=>'希腊',
        'GS'=>'S. Georgia and S. Sandwich Isls.',
        'GT'=>'危地马拉',
        'GU'=>'关岛',
        'GW'=>'几内亚比绍',
        'GY'=>'圭亚那',
        'HK'=>'中国香港特区',
        'HM'=>'赫德和麦克唐纳群岛',
        'HN'=>'洪都拉斯',
        'HR'=>'克罗地亚',
        'HT'=>'海地',
        'HU'=>'匈牙利',
        'ID'=>'印度尼西亚',
        'IE'=>'爱尔兰',
        'IL'=>'以色列',
        'IN'=>'印度',
        'IO'=>'英属印度洋领地',
        'IQ'=>'伊拉克',
        'IR'=>'伊朗',
        'IS'=>'冰岛',
        'IT'=>'意大利',
        'JM'=>'牙买加',
        'JO'=>'约旦',
        'JP'=>'日本',
        'KE'=>'肯尼亚',
        'KG'=>'吉尔吉斯斯坦',
        'KH'=>'柬埔寨',
        'KI'=>'基里巴斯',
        'KM'=>'科摩罗',
        'KN'=>'圣基茨和尼维斯',
        'KP'=>'韩国',
        'KR'=>'朝鲜',
        'KW'=>'科威特',
        'KY'=>'开曼群岛',
        'KZ'=>'哈萨克斯坦',
        'LA'=>'老挝',
        'LB'=>'黎巴嫩',
        'LC'=>'圣卢西亚',
        'LI'=>'列支顿士登',
        'LK'=>'斯里兰卡',
        'LR'=>'利比里亚',
        'LS'=>'莱索托',
        'LT'=>'立陶宛',
        'LU'=>'卢森堡',
        'LV'=>'拉托维亚',
        'LY'=>'利比亚',
        'MA'=>'摩洛哥',
        'MC'=>'摩纳哥',
        'MD'=>'摩尔多瓦',
        'MG'=>'马达加斯加',
        'MH'=>'马绍尔群岛',
        'MK'=>'马其顿',
        'ML'=>'马里',
        'MM'=>'缅甸',
        'MN'=>'蒙古',
        'MO'=>'中国澳门特区',
        'MP'=>'北马里亚纳群岛',
        'MQ'=>'法属马提尼克群岛',
        'MR'=>'毛里塔尼亚',
        'MS'=>'蒙塞拉特岛',
        'MT'=>'马耳他',
        'MU'=>'毛里求斯',
        'MV'=>'马尔代夫',
        'MW'=>'马拉维',
        'MX'=>'墨西哥',
        'MY'=>'马来西亚',
        'MZ'=>'莫桑比克',
        'NA'=>'纳米比亚',
        'NC'=>'新卡里多尼亚',
        'NE'=>'尼日尔',
        'NF'=>'诺福克岛',
        'NG'=>'尼日利亚',
        'NI'=>'尼加拉瓜',
        'NL'=>'荷兰',
        'NO'=>'挪威',
        'NP'=>'尼泊尔',
        'NR'=>'瑙鲁',
        'NT'=>'中立区(沙特-伊拉克间)',
        'NU'=>'纽爱',
        'NZ'=>'新西兰',
        'OM'=>'阿曼',
        'PA'=>'巴拿马',
        'PE'=>'秘鲁',
        'PF'=>'法属玻里尼西亚',
        'PG'=>'巴布亚新几内亚',
        'PH'=>'菲律宾',
        'PK'=>'巴基斯坦',
        'PL'=>'波兰',
        'PM'=>'圣皮艾尔和密克隆群岛',
        'PN'=>'皮特克恩岛',
        'PR'=>'波多黎各',
        'PT'=>'葡萄牙',
        'PW'=>'帕劳',
        'PY'=>'巴拉圭',
        'QA'=>'卡塔尔',
        'RE'=>'法属尼留旺岛',
        'RO'=>'罗马尼亚',
        'RU'=>'俄罗斯',
        'RW'=>'卢旺达',
        'SA'=>'沙特阿拉伯',
        'SC'=>'塞舌尔',
        'SD'=>'苏丹',
        'SE'=>'瑞典',
        'SG'=>'新加坡',
        'SH'=>'圣赫勒拿',
        'SI'=>'斯罗文尼亚',
        'SJ'=>'斯瓦尔巴特和扬马延岛',
        'SK'=>'斯洛伐克',
        'SL'=>'塞拉利昂',
        'SM'=>'圣马力诺',
        'SN'=>'塞内加尔',
        'SO'=>'索马里',
        'SR'=>'苏里南',
        'ST'=>'圣多美和普林西比',
        'SU'=>'前苏联',
        'SV'=>'萨尔瓦多',
        'SY'=>'叙利亚',
        'SZ'=>'斯威士兰',
        'Sb'=>'所罗门群岛',
        'TC'=>'特克斯和凯科斯群岛',
        'TD'=>'乍得',
        'TF'=>'法国南部领地',
        'TG'=>'多哥',
        'TH'=>'泰国',
        'TJ'=>'塔吉克斯坦',
        'TK'=>'托克劳群岛',
        'TM'=>'土库曼斯坦',
        'TN'=>'突尼斯',
        'TO'=>'汤加',
        'TP'=>'东帝汶',
        'TR'=>'土尔其',
        'TT'=>'特立尼达和多巴哥',
        'TV'=>'图瓦卢',
        'TW'=>'中国台湾省',
        'TZ'=>'坦桑尼亚',
        'UA'=>'乌克兰',
        'UG'=>'乌干达',
        'UK'=>'英国',
        'UM'=>'美国海外领地',
        'US'=>'美国',
        'UY'=>'乌拉圭',
        'UZ'=>'乌兹别克斯坦',
        'VA'=>'梵蒂岗',
        'VC'=>'圣文森特和格陵纳丁斯',
        'VE'=>'委内瑞拉',
        'VG'=>'英属维京群岛',
        'VI'=>'美属维京群岛',
        'VN'=>'越南',
        'VU'=>'瓦努阿鲁',
        'WF'=>'瓦里斯和福图纳群岛',
        'WS'=>'西萨摩亚',
        'YE'=>'也门',
        'YT'=>'马约特岛',
        'YU'=>'南斯拉夫',
        'ZA'=>'南非',
        'ZM'=>'赞比亚',
        'ZR'=>'扎伊尔',
        'ZW'=>'津巴布韦');
    $code=strtoupper($code);
    $name= isset($ind[$code]) ? $ind[$code] : '局域网';
    if (empty($name)) {
        return null;
    }
    return $name;
}

/**
这是获取当前用户IP所在国家
 */
function get_ip_nation() {
    $ip = $_SERVER["REMOTE_ADDR"]; /* 获取当前浏览用户地址,显示的是纯ip地址格式   */
    $nat = "http://www.geoplugin.net/json.gp?ip="; /* 从指定的网站那里获得IP所处位置的信息 */
    $Source = file_get_contents($nat.$ip);  /* 获取网页源码,变量 $Source 即是当前IP地址的网页源码 */
    $area = json_decode($Source);
    return transCode($area->geoplugin_countryCode);
}


/**
这是输出当前用户IP所在国家或地区的旗帜
 */
function outputflag() {
    $ip = $_SERVER["REMOTE_ADDR"]; /* 获取当前浏览用户地址,显示的是纯ip地址格式   */
    $nat = "http://www.geoplugin.net/json.gp?ip="; /* 从指定的网站那里获得IP所处位置的信息 */
    $Source = file_get_contents($nat.$ip);  /* 获取网页源码,变量 $Source 即是当前IP地址的网页源码 */
    $area = json_decode($Source);
    $ad = get_stylesheet_directory_uri(); /* 获取当前主题目录路径 这个变量是wordpress对有的 */
    $userarea = transCode($area->geoplugin_countryCode);
        $flag = strtolower($area->geoplugin_countryCode); /* 将字符窜数据转换成小写 */
        if ($flag == "tw" || $flag == "hk" || $flag == "mo" ) {
        $version = "<img src=\"$ad/images/nation/cn.png\" alt=\"中华人民共和国\" title=\"中华人民共和国\" width=\"16\" /> || <img src=\"$ad/images/nation/$flag.png\" alt=\"$userarea\" title=\"$userarea\" width=\"16\" /> "; /** 定义图片地址 */
         }else{
        $version = "<img src=\"$ad/images/nation/$flag.png\" alt=\"$userarea\" title=\"$userarea\" width=\"16\" />"; /** 定义图片地址 */
         }
         return $version;
         }

/**
这是获取当前用户浏览器UserAgent数据中的真正的系统名称或浏览器名称
 */
function get_pickup_browser() {
    $agent = $_SERVER['HTTP_USER_AGENT']; /** 获取用户当前UserAgent数据  */
    $im = strtolower($agent); /* 将字符窜数据转换成小写 */
    $mb = array(); /** 创建一个空白数组 */
        if (strpos($im,"firefox")){
            array_push($mb,strpos($im,"firefox"),"firefox"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"opera")){
            array_push($mb,strpos($im,"opera"),"opera"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"chrome")){
            array_push($mb,strpos($im,"chrome"),"chrome"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"safari")){
            array_push($mb,strpos($im,"safari"),"safari"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"edge/")){
            array_push($mb,strpos($im,"edge/"),"edge"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"maxthon")){
            array_push($mb,strpos($im,"maxthon"),"maxthon"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"tencenttraveler")){
            array_push($mb,strpos($im,"tencenttraveler"),"tencenttraveler"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"world")){
            array_push($mb,strpos($im,"world"),"world"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"360se")){
            array_push($mb,strpos($im,"360se"),"360se"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"metasr")){
            array_push($mb,strpos($im,"metasr"),"metasr"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"baidu")){
            array_push($mb,strpos($im,"baidu"),"baidu"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"qq")){
            array_push($mb,strpos($im,"qq"),"qq"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"360ee")){
            array_push($mb,strpos($im,"360ee"),"360ee"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"lbbrowser")){
            array_push($mb,strpos($im,"lbbrowser"),"lbbrowser"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"ucbrowser")){
            array_push($mb,strpos($im,"ucbrowser"),"ucbrowser"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"lceweasel")){
            array_push($mb,strpos($im,"lceweasel"),"lceweasel"); /** 加入一条数组信息并覆值 */
        }
        if (count($mb) >= 2){
        $mb = array_flip(array_flip($mb)); /** 去除重复的数组数据 */
            $b = end($mb); /** 取数组里最大的元素的值  */
        }
        unset($mb);
        return $b;
        } /** get_pickup_browser */

function get_pickup_os() {
    $agent = $_SERVER['HTTP_USER_AGENT']; /** 获取用户当前UserAgent数据  */
    $im = strtolower($agent); /* 将字符窜数据转换成小写 */
    $mb = array(); /** 创建一个空白数组 */
        if (strpos($im,"linux")){
            array_push($mb,strpos($im,"linux"),"linux"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"centos")){
            array_push($mb,strpos($im,"centos"),"centos"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"debian")){
            array_push($mb,strpos($im,"debian"),"debian"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"ubuntu")){
            array_push($mb,strpos($im,"ubuntu"),"ubuntu"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"fedora")){
            array_push($mb,strpos($im,"fedora"),"fedora"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"gentoo")){
            array_push($mb,strpos($im,"gentoo"),"gentoo"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"unix")){
            array_push($mb,strpos($im,"unix"),"unix"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"mac")){
            array_push($mb,strpos($im,"mac"),"mac"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"sun")){
            array_push($mb,strpos($im,"sun"),"sun"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"ibm")){
            array_push($mb,strpos($im,"firefox"),"firefox"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"android")){
            array_push($mb,strpos($im,"android"),"android"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"ipad")){
            array_push($mb,strpos($im,"ipad"),"ipad"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"iphone")){
            array_push($mb,strpos($im,"iphone"),"iphone"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"netbsd")){
            array_push($mb,strpos($im,"netbsd"),"netbsd"); /** 加入一条数组信息并覆值 */
        }
        if (strpos($im,"freebsd")){
            array_push($mb,strpos($im,"freebsd"),"freebsd"); /** 加入一条数组信息并覆值 */
        }
        if (count($mb) >= 1){
            $b = end($mb); /** 取数组里最大的元素的值  */
        }
        unset($mb);
        return $b;
        } /** get_pickup_os */


/**
这是获取当前用户浏览器名称和图片或者是当前用户系统的名称和图片
 */
function get_browser_name() {
    $agent = $_SERVER['HTTP_USER_AGENT']; /** 获取用户当前UserAgent数据  */
    $im = strtolower($agent); /* 将字符窜数据转换成小写 */
    $ad = get_stylesheet_directory_uri(); /* 获取当前主题目录路径  */
    $t = get_pickup_browser();
    if ($t == "firefox"){
        $t = "FireFix火狐浏览器";
        $version = "<img src=\"$ad/images/browser/firefox.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "opera"){
        $t = "Opera浏览器";
        $version = "<img src=\"$ad/images/browser/opera.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "chrome"){
        $t = "Chrome浏览器";
        $version = "<img src=\"$ad/images/browser/chrome.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "safari"){
        $t = "Safari浏览器";
        $version = "<img src=\"$ad/images/browser/safari.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"msie 9.0")){
        $t = "Internet Explorer 9.0浏览器";
        $version = "<img src=\"$ad/images/browser/ie.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"msie 8.0")){
        $t = "Internet Explorer 8.0浏览器";
        $version = "<img src=\"/images/browser/ie.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"msie 7.0")){
        $t = "Internet Explorer 7.0浏览器";
        $version = "<img src=\"$ad/images/browser/ie.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"msie 6.0")){
        $t = "Internet Explorer 6.0浏览器";
        $version = "<img src=\"$ad/images/browser/ie.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "edge"){
        $t = "Edge浏览器";
        $version = "<img src=\"$ad/images/browser/edge.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "maxthon"){
        $t = "傲游浏览器";
        $version = "<img src=\"$ad/images/browser/maxthon.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "tencenttraveler"){
        $t = "腾讯TT浏览器";
        $version = "<img src=\"$ad/images/browser/tt.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "world"){
        $t = "世界之窗浏览器";
        $version = "<img src=\"$ad/images/browser/world.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "360se"){
        $t = "360浏览器";
        $version = "<img src=\"$ad/images/browser/360.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "metasr"){
        $t = "搜狗浏览器";
        $version = "<img src=\"$ad/images/browser/metasr.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "baidu"){
        $t = "百度浏览器";
        $version = "<img src=\"$ad/images/browser/baidu.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "qq"){
        $t = "QQ浏览器";
        $version = "<img src=\"$ad/images/browser/qq.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "360ee"){
        $t = "360极速浏览器";
        $version = "<img src=\"$ad/images/browser/360ee.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "lbbrowser"){
        $t = "猎豹浏览器";
        $version = "<img src=\"$ad/images/browser/lb.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "ucbrowser"){
        $t = "UC浏览器";
        $version = "<img src=\"$ad/images/browser/uc.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"rv:11.0")){
        $t = "Internet Explorer 11浏览器";
        $version = "<img src=\"$ad/images/browser/ie.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "lceweasel"){
        $t = "lceweasel浏览器";
        $version = "<img src=\"$ad/images/browser/lceweasel.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    return $version;
}

/**
这是获取当前用户系统的名称和图片
 */

function get_os(){
    /** 以下是系统信息 */
    $agent = $_SERVER['HTTP_USER_AGENT']; /** 获取用户当前UserAgent数据  */
    $im = strtolower($agent); /* 将字符窜数据转换成小写 */
    $ad = get_stylesheet_directory_uri(); /* 获取当前主题目录路径  */
    $t = get_pickup_os();
    if (strpos($im,"win") && strpos($im, '95')){
        $t = "Windows 95系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win 9x") && strpos($im, '4.90')){
        $t = "Windows ME系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"98")){
        $t = "Windows 98系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 5.1")){
        $t = "Windows XP系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 5.2")){
        $t = "Windows  Server 2003系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 5.3")){
        $t = "Windows 2000系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 6.0")){
        $t = "Windows Vista/Windows Server 2008系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 6.1")){
        $t = "Windows 7/Windows Server 2008 R2系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 6.2")){
        $t = "Windows 8/Windows Server 2012系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"win") && strpos($im,"nt 10")){
        $t = "Windows 10系统";
        $version = "<img src=\"$ad/images/system/wind.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "linux"){
        $t = "Linux系统";
        $version = "<img src=\"$ad/images/system/linux.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "unix"){
        $t = "Unix系统";
        $version = "<img src=\"$ad/images/system/unix.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"sun") && strpos($im,"os")){
        $t = "SunOS系统";
        $version = "<img src=\"$ad/images/system/sun.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if (strpos($im,"ibm") && strpos($im,"os")){
        $t = "IBM系统";
        $version = "<img src=\"$ad/images/system/ibm.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "mac"){
        $t = "Mac系统";
        $version = "<img src=\"$ad/images/system/mac.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "android"){
        $t = "安卓系统";
        $version = "<img src=\"$ad/images/system/android.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "ipad"){
        $t = "IPAD系统";
        $version = "<img src=\"$ad/images/system/ip.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "iphone"){
        $t = "苹果系统";
        $version = "<img src=\"$ad/images/system/ip.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "netbsd"){
        $t = "NetBSD系统";
        $version = "<img src=\"$ad/images/system/freebsd.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "freebsd"){
        $t = "FreeBSD系统";
        $version = "<img src=\"$ad/images/system/freebsd.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "fedora"){
        $t = "Fedora系统";
        $version = "<img src=\"$ad/images/system/fedora.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "redhat"){
        $t = "RedHat系统";
        $version = "<img src=\"$ad/images/system/redhat.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "debian"){
        $t = "Debian系统";
        $version = "<img src=\"$ad/images/system/debian.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "ubuntu"){
        $t = "Ubuntu系统";
        $version = "<img src=\"$ad/images/system/ubuntu.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "centos"){
        $t = "Centos系统";
        $version = "<img src=\"$ad/images/system/centos.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    if ($t == "suse"){
        $t = "SuSe系统";
        $version = "<img src=\"$ad/images/system/suse.png\" alt=\"$t\" title=\"$t\" width=\"16\" />"; /** 定义图片地址 */
    }
    return $version;
}

/** 这是输出所有信息代码 */
function goout_put(){
echo "<br />Your current IP address is: < ?php echo get_ip(); ?><br />Your IP address location: < ?php echo get_ip_address(); ?><br />Your IP address country and region: < ?php echo get_ip_nation(); ?> < ?php echo outputflag(); ?><br />Your current browser is: < ?php echo get_browser_name(); ?><br />Your current system is: < ?php echo get_os(); ?>";
}

二:在源码目录中的single.php文件中插入以下代码

                          <br /><font color="#7fcce5">sicnature</font> <font>---------------------------------------------------------------------</font>
                          <br />
                            Your current IP address is:  < ?php echo get_ip(); ?>
                          <br />
                           Your IP address location: < ?php echo get_ip_address(); ?>
                          <br />
                           Your IP address country and region: < ?php echo get_ip_nation(); ?> < ?php echo outputflag(); ?>
                          <br />
                           Your current browser is: < ?php echo get_browser_name(); ?>
                          <br />
                           Your current system is: < ?php echo get_os(); ?>
                          <br /><b>Original content, please indicate the source:</b>
                           <br /><a target="_blank" href="http://www.myzhenai.com/">同福客栈论坛</a> | <a target="_blank" href="http://www.myzhenai.com.cn/">海南仙岛</a> | <a target="_blank" href="http://www.haikou-china.com/">海南乡情论坛</a> | <a target="_blank" href="http://jiayu.mybabya.com/">JiaYu Blog</a>
                           <br /><font color="#7fcce5">sicnature</font> <font>---------------------------------------------------------------------</font>
                        <div>
                                Welcome to reprint. Please indicate the source < ?php the_permalink() ?>
                        </div>

PHP获取客户浏览器版本 系统版本 IP地址和IP所在国家源代码及例程

PHP获取客户浏览器版本 系统版本 IP地址和IP所在国家源代码及例程


还有一个方法是使用php官方内置函数 get_browser()进行获取的, 它返回的是一个数组, 只要输出它的browser和platform元素就可以了, 不过它的缺点是它只能获取一些国外注流的浏览器版本,好多国内的浏览器获取不到,并且要下载配置一个庞大的browscap.ini文件.它应该是匹配这个文件里的一些信息的.
利用php内置函数get_browser获取客户端信息

利用php内置函数get_browser获取客户端信息

< ?php
echo $_SERVER['HTTP_USER_AGENT'] . "<br />";//获取访问用户的User Agent信息
$browser = get_browser(null,true); //这是php内置的查询客户端信息函数但是要使用必须参考 http://php.net/manual/zh/function.get-browser.php
echo "您的浏览器是: ".$browser["browser"]. "<br />"; //这是输出客户端浏览器信息
echo "您的系统版本是: ".$browser["platform"]. "<br />";//这是输出客户端系统信息
?>

WordPress获取垃圾回复IP地址的方法

星期三, 九月 24th, 2014

原创内容,转载清注明出处:http://www.myzhenai.com.cn/post/1875.html http://www.myzhenai.com/thread-16324-1-1.html
这个方法的前提是安装了akismet过滤插件,我的思路是这样的,因为WordPress的垃圾回复比较多,就算安装了akismet拦截也有好多被写入数据库,所以就想着有没有方法把这些垃圾回复的IP提取出来,然后用iptables封禁掉.这样一来就可以减少Mysql数据库的读写和降低服务器的资源占用.一直以来我以为这个功能需要在akismet中更改代码,但是在一朋友的提示下才知道这个是WordPress的内置功能.我们需要用到的函数是 get_comment_author_IP() 这个在官方文本中的注释是返回评论者IP.但是WordPress里还有一个comment_author_IP()函数也能获取评论者IP,但是我们在这里添加却没有办法获得它的返回值,所以要用 get_comment_author_IP(). 我们将下边的代码添加到 /wp-admin/includes/class-wp-comments-list-table.php这个文件中,在comment_author_IP();下边插入代码保存并上传覆盖原文件即可.修改前请先备份这个文件.

    $aip = get_comment_author_IP(); /** 得到ip地址 */
    $txt = file_get_contents("/spam.log"); /** 对比ip地址是否存在文件内,防止重复输入 */
    if (strpos($txt,$aip) === false) /** 如果文件内找不到这个ip地址 */
    {
    $handle = fopen("/spam.log","a+"); /** 打开文件并得到一个句柄,据说a+是写入? */
    fwrite($handle,$aip."/n"); /** 将获得的ip地址添加到文件中 */
    }
    fclose($handle); /** 关闭句柄 */

WordPress 获取 垃圾 回复 IP 地址 方法

WordPress获取垃圾回复IP地址的方法


WordPress spam 获取 垃圾 回复 IP 地址 方法

WordPress获取垃圾回复IP地址的方法


WordPress 函数 get_comment_author_IP 注释

WordPress函数get_comment_author_IP注释


本来我想将代码添加到当前主题中的评论模块comments.php文件中的,但因为我还搞不懂如何判断是否为垃圾回复,为了避免所有回复用户的IP都被收录过滤,所以暂时先不把它加到这个文件中了. 我查找了WordPress官方文档,好像用wp_allow_comment()和wp_get_comment_status()还有wp_blacklist_check()这三个函数可以判断是否为垃圾回复,但是因为我还不懂得如何写这些代码的参数.所以先不弄了,如果您懂得的,欢迎您指点,谢谢了.

iptables防火墙禁止福建莆田ip地址规则

星期二, 一月 28th, 2014

原创内容,转载请注明出处:http://www.myzhenai.com/thread-16139-1-1.html http://www.myzhenai.com.cn/post/1685.html
关键字: 福建ip 莆田ip 福建ip段 莆田ip段 iptables规则 iptables禁止广告ip 禁止福建莆田ip的iptables脚本
这些ip是我从我另一个服务器上的web日志里用程序读出来的,552210条纪录读了几个小时.还有部份福建莆田ip段是hostloc论坛上的Captain用程序跑出来的.在这里要感谢Captain和hostloc上的几个朋友以及易语言官方论坛上的流云思水朋友对我的帮助,谢谢他们….

web 网络 日志 统计 工具 iptables 规则 创建

web网络日志统计工具 iptables规则创建工具


程序的核心代码是在流云思水朋友的帮助下完成的,谢谢他热心的帮助.
福建 莆田 ip地址列表

福建 莆田 ip地址列表


福建 莆田 ip段地址列表

福建 莆田 ip段地址列表


为什么会有国外和港台的ip地址被封锁,是因为我们发现有大部份的这些地区的数据中心的一些ip地址也一样对我们进行了大量的访问,这里有一部份是一些不常用的搜索引擎的爬虫,还有很大一部份是有扫描我们服务器后台的嫌疑和被人租用或利用来乱发广告的嫌疑,这里有好多是数据机房的,所以我们有理由相信是乱发广告的人租用了这些服务器和ip地址进行乱发广告.所以我们进行了封锁处理.
ip地址列表:http://pan.baidu.com/s/1hq5LBm8 http://pan.baidu.com/s/1nt6rwHN
iptables脚本下载:http://pan.baidu.com/s/1eQ5jITW
解压密码:www.myzhenai.com.cn

BaiDu蜘蛛详解

星期二, 八月 28th, 2012

做为一个站长,最头疼的是搜索引擎的收录与网站的快照,排名,权重之类的了,很多细心的站长可能会仔细的优化网站的结构与关键词,但是蜘蛛什么时候会来访我们不知道,这里贴一份摘自网络的百度蜘蛛的IP段.
123.125.68.*这个蜘蛛经常来,别的来的少,表示网站可能要进入沙盒了,或被者降权。
220.181.68.*每天这个IP 段只增不减很有可能进沙盒或K站。
220.181.7.*、123.125.66.* 代表百度蜘蛛IP造访,准备抓取你东西。
121.14.89.*这个ip段作为度过新站考察期。
203.208.60.*这个ip段出现在新站及站点有不正常现象后。
210.72.225.*这个ip段不间断巡逻各站。
125.90.88.* 广东茂名市电信也属于百度蜘蛛IP 主要造成成分,是新上线站较多,还有使用过站长工具,或SEO综合检测造成的。
220.181.108.95这个是百度抓取首页的专用IP,如是220.181.108段的话,基本来说你的网站会天天隔夜快照,绝对错不了的,我保证。
220.181.108.92 同上98%抓取首页,可能还会抓取其他 (不是指内页)220.181段属于权重IP段此段爬过的文章或首页基本24小时放出来。
123.125.71.106 抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。
220.181.108.91属于综合的,主要抓取首页和内页或其他,属于权重IP 段,爬过的文章或首页基本24小时放出来。
220.181.108.75重点抓取更新文章的内页达到90%,8%抓取首页,2%其他。权重IP 段,爬过的文章或首页基本24小时放出来。
220.181.108.86专用抓取首页IP 权重段,一般返回代码是304 0 0 代表未更新。
123.125.71.95 抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。
123.125.71.97 抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。
220.181.108.89专用抓取首页IP 权重段,一般返回代码是304 0 0 代表未更新。
220.181.108.94专用抓取首页IP 权重段,一般返回代码是304 0 0 代表未更新。
220.181.108.97专用抓取首页IP 权重段,一般返回代码是304 0 0 代表未更新。
220.181.108.80专用抓取首页IP 权重段,一般返回代码是304 0 0 代表未更新。
220.181.108.77 专用抓首页IP 权重段,一般返回代码是304 0 0 代表未更新。
123.125.71.117 抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。
220.181.108.83专用抓取首页IP 权重段,一般返回代码是304 0 0 代表未更新。
注:以上IP尾数还有很多,但段位一样的123.125.71.*段IP 代表抓取内页收录的权重比较低.可能由于你采集文章或拼文章暂时被收录但不放出来.(意思也就是说待定)。
220.181.108.*段IP主要是抓取首页占80%,内页占30%,这此爬过的文章或首页,绝对24小时内放出来和隔夜快照的,这点我可以保证!