Linux(CentOS)下的Shockwave Flash shell一键更新脚本

九月 26th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2318.html http://www.myzhenai.com/thread-17933-1-1.html
关键字: Shockwave Flash一键更新脚本 Flash一键更新脚本
这个脚本其实是我自己用的, 我的系统里安装了FlashPlayer软件和火狐(firefox)浏览器里安装了Shockwave Flash插件,因为要一个一个来更新显得太麻烦,所以我自己写了这么一个小脚本来快速更新. 原理很简单, 从官方网站上下载FlashPlayer的最新版本到本地覆盖旧版本程序,然后通过flashplayer -v得到最新的版本号,再通过指定的官方下载链接将Shockwave Flash插件下载到本地并安装,在安装之前自动卸载旧版本的Shockwave Flash.

# !/bin/bash
wget http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_sa.i386.tar.gz /*下载最新版本文件*/
tar -xzvf flashplayer_11_sa.i386.tar.gz /*解压当前文件*/
mv -f flashplayer /usr/bin/ /*移动当前文件*/
rm -rf LGPL /*删除当前文件目录*/
rm -rf flashplayer_11_sa.i386.tar.gz /*删除下载的源文件*/
killall -9 firefox /*终止火狐浏览器进程*/
yum remove flash-plugin -y /*卸载旧版本的Shockwave Flash插件*/
h=`flashplayer -v|sed '/^$/!h;$!d;g'|sed 's/,/./g'` /*通过flashplayer -v得到当前最新版本的版本号*/
wget https://fpdownload.adobe.com/get/flashplayer/pdc/$h/flash-plugin-$h-release.i386.rpm /*下载最新版本的插件*/
rpm -ivh flash-plugin-$h-release.i386.rpm /*安装最新版本的插件*/
# !/bin/bash
wget http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_sa.i386.tar.gz
tar -xzvf flashplayer_11_sa.i386.tar.gz
mv -f flashplayer /usr/bin/
rm -rf LGPL
rm -rf flashplayer_11_sa.i386.tar.gz
killall -9 firefox
yum remove flash-plugin -y
h=`flashplayer -v|sed '/^$/!h;$!d;g'|sed 's/,/./g'`
wget https://fpdownload.adobe.com/get/flashplayer/pdc/$h/flash-plugin-$h-release.i386.rpm
rpm -ivh flash-plugin-$h-release.i386.rpm
Linux(CentOS)下的Shockwave Flash shell一键更新脚本

Linux(CentOS)下的Shockwave Flash shell一键更新脚本

一个简单的检测网络Shell脚本

九月 9th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2309.html http://www.myzhenai.com/thread-17923-1-1.html
关键词: Shell判断变量是否为空 Shell判断参数是否为空 Shell检测网络 Shell ping Shell traceroute

Shell ping Shell traceroute

Shell ping Shell traceroute


Shell ping Shell traceroute

Shell ping Shell traceroute


其实这个Shell脚本就是简单的将ping和traceroute集合在一起. 因为我总是会忘记traceroute的拼法.

# !/bin/bash
##############################################################################################################################################
# This is the Network detection script tool
# Author: RucLinux 海南胡说 海南仙岛
# Website: www.myzhenai.com www.myzhenai.com.cn www.haikou-china.com jiayu.mybabya.com www.0898-shop.com
##############################################################################################################################################
if [ ! -n $1 ];then
echo "You did not enter a URL or IP"
else
p=`ping -c 5 $1`
echo -e "$p\n"
t=`traceroute $1`
echo -e "$t\n"
fi

Shell 自动删除指定字符窜后边的字符窜

九月 3rd, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2300.html http://www.myzhenai.com/thread-17920-1-1.html
关键词: Linux删除指定字符窜后边的字符窜 Shell删除指定字符窜后边的字符窜 sed删除指定字符窜后边的字符窜 sed删除右边的字符窜 sed删除左边的字符窜
对于shell编程的过程中我们都会遇到一个问题,如何替换或删除掉文件中指定字符窜后边或前边的一段字符, 如果使用正则的话是方便,但正则也没有办法做到针对不同的字符窜, 更何况是不懂正则的朋友,像我这样.
所以我换了个思路, 先取到需要替换或删除的字符窜,放到一个变量中,然后再用这个变量做为替换或删除的关键词去操作. 实现方法也很简单.
因为演示的文本里有敏感关键词,所以我只能是截图来演示了. 但代码我会详细解释.

Shell 自动删除指定字符窜后边的字符窜

Shell 自动删除指定字符窜后边的字符窜


Shell 自动删除指定字符窜后边的字符窜

Shell 自动删除指定字符窜后边的字符窜


Shell 自动删除指定字符窜后边的字符窜

Shell 自动删除指定字符窜后边的字符窜

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b") //这是获取整行内容,免得有分隔符或其他字符让读取的文本变成错行
sed -i '/[ltem_[0-9]]/d' database.ini
sed -i '/ItemCount/d' database.ini
sed -i '/TaskIndex/d' database.ini
sed -i '/Filename/d' database.ini
sed -i '/Path/d' database.ini
sed -i '/Percent/d' database.ini
sed -i '/Referer/d' database.ini
sed -i '/Rename/d' database.ini //以上这些都是替换掉包含指定关键词的整行.
sed -i '/^$/d' database.ini
sed -i '/^\s*$/d' database.ini //这两行是删除所有空白符或换行符或空格
sed -i 's/Link=//g' database.ini //删除所有指定字符
if  grep -q "|" database.ini ; then echo ""; else sed -i 's/$/&|/g' database.ini; fi //判断所有字符窜里是不是包含|这字符窜,如果有就不添加,如果没有就自动在每行后边添加这个字符,用作下边代码的分隔符.
for i in $(< database.ini) //进入循环
do
h=`echo $i|awk -F "?" '{ print $2 }'|awk -F "|" '{ print $1 }'` //取出指定字符窜右边的字符放到h变量中, 如果要取左边的字符,在上边的代码中将|添加在行首,然后将?和|这两个搜索关键字符互调,将$1和$2参数互换就可以了.
sed -i "s/?$h|//g" database.ini //删除?这个字符和变量里的字符窜和|这个字符.
done
IFS=$SAVEIFS

完整代码

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
sed -i '/[ltem_[0-9]]/d' database.ini
sed -i '/ItemCount/d' database.ini
sed -i '/TaskIndex/d' database.ini
sed -i '/Filename/d' database.ini
sed -i '/Path/d' database.ini
sed -i '/Percent/d' database.ini
sed -i '/Referer/d' database.ini
sed -i '/Rename/d' database.ini
sed -i '/^$/d' database.ini
sed -i '/^\s*$/d' database.ini
sed -i 's/Link=//g' database.ini
if  grep -q "|" database.ini ; then echo ""; else sed -i 's/$/&|/g' database.ini; fi
for i in $(< database.ini)
do
h=`echo $i|awk -F "?" '{ print $2 }'|awk -F "|" '{ print $1 }'`
sed -i "s/?$h|//g" database.ini
done
IFS=$SAVEIFS

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地址进行过滤了.

Dropbox更新版本的方法

八月 21st, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2281.html http://www.myzhenai.com/thread-17911-1-1.html
关键词: Dropbox升级 Dropbox更新 Dropbox提示 您使用的Dropbox是旧版本 请更新最新版本继续使用Dropbox
刚才运行Dropbox进行备份的时候,Dropbox弹出一个窗口,提示我的版本过旧,无法进行上传操作,因为我之前一直用的是Dropbox3.1.6版的,我以为Dropbox会自动更新,但是一点击窗口上的更新, 跳转到 https://www.dropbox.com/install?os=lnx 可是我不明白Dropbox的意思是让我重装Dropbox还是更新Dropbox. 当我下载了安装包和源码编译包进行安装和编译后,仍然是出现这样的提示, 所以我在想,应该问题不是出现在这里, 恰好我看到旁边有一个版本说明, 里边对应的版本里都有相应的下载链接,比如我下载的是稳定的内部版本的 8.4.19 https://d1ilhw0800yew8.cloudfront.net/client/dropbox-lnx.x86-8.4.19.tar.gz 这个文件很大,但很奇怪,解压后却没有看到当前目录有文件夹, 后来显示所有文件才发现,这个是一个带标点符号的隐藏目录. 解压后得到.dropbox-dist目录,里边的就是最新版本的配置文件.
所以现在我们更新Dropbox就简单好多了, 选把旧版本的.dropbox-dist目录删除,接着下载对应版本的更新包文件,解压缩为.dropbox-dist, 问题完美解决.

Dropbox更新版本的方法

Dropbox更新版本的方法


Dropbox更新版本的方法

Dropbox更新版本的方法

Linux Shell枚举目录下相同文件脚本

八月 20th, 2016

原创内容,转载请注昨出处: http://www.myzhenai.com.cn/post/2269.html http://www.myzhenai.com/thread-17910-1-1.html
关键词: Linux查找相同文件 shell查找相同文件
写这个脚本是为了练习shell编程的,本来思路是想着通过文件大小一致和md5值一致来获取相同的文件的,但我这脚本的实现方法好像不是太严谨,应该说是不太准确的,对于是不是这样,我也没有太大的把握,因为我调试过好多遍了,但找出来好多不同文件名,但相同类型的文件,因为这些文件我知道,有好多是我拍摄的相片, 如果说文件大小有可能会一致,但每个文件的md5值应该是不一样的. 所以这里只提供给朋友们一个思路, 您也可以帮忙调试改进, 欢迎朋友们参与讨论. 说实在的,这个脚本对于我们做站的朋友们来说还是有用处的,可以清除一些网站用户上传的相同的文件.

# !/bin/bash
echo -e  "\033[31m Please enter your name you want to find the file suffix: \033[0m"
read name
dir=$(cd `dirname $0`; pwd)
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
files=`find $dir -iname "*.$name"`
for file in $files
do
size=`ls -l $file|awk '{print $5}'`
md=`md5sum $file|cut -d ' ' -f1`
echo $file" | "$size" | "$md >> tong.log
done
########################################
files=`find $dir -iname "*.$name"`
for file in $files
do
size=`ls -l $file|awk '{print $5}'`
md=`md5sum $file|cut -d ' ' -f1`
h=`grep -c $size" | "$md tong.log`
if [ $h -gt 2 ];then
echo $file"  Similarfiles  [$h]" >> long.log
fi
done
IFS=$SAVEIFS
#echo "$IFS" | od -t x1

Linux Shell枚举目录下相同文件脚本

Linux Shell枚举目录下相同文件脚本


Linux Shell枚举目录下相同文件脚本

Linux Shell枚举目录下相同文件脚本


Linux Shell枚举目录下相同文件脚本

Linux Shell枚举目录下相同文件脚本

Linux(centos)下安装PhpStorm2016.2教程

八月 19th, 2016

原创内容,转载请注昨出处: http://www.myzhenai.com.cn/post/2260.html http://www.myzhenai.com/thread-17909-1-1.html
关键词: phpstorm2016.2激活 phpstorm2016.2汉化 phpstorm2016.2中文 phpstorm2016.2安装
PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查.
PhpStorm官网:https://www.jetbrains.com/
PhpStorm2016.2:https://download.jetbrains.8686c.com/webide/PhpStorm-2016.2.tar.gz (Linux)
PhpStorm2016.2:https://download.jetbrains.8686c.com/webide/PhpStorm-2016.2.exe (windows)
需要的文件: 链接: https://pan.baidu.com/s/1bFaboU 密码: 6qpe
安装之前需要先安装java18以下版本. java安装教程 http://www.myzhenai.com.cn/post/1284.html 将旧版本的java安装目录删除, 将旧版本的java环境变量删除. 重新安装java
java下载页面: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
现在我们来安装PhpStorm2016.2

cd /usr/local/
wget https://download.jetbrains.8686c.com/webide/PhpStorm-2016.2.tar.gz
tar -xzvf PhpStorm-2016.2.tar.gz
mv PhpStorm(Unpacked directory) PhpStorm
cd PhpStorm/bin/
chmod 777 phpstorm.sh
sh phpstorm.sh

在弹出的窗口中选择 “Evaluate for free” 30天试用安装.
安装完成后我们进行验证, 下载需要的文件里的 phpstorm2016.2.zip 压缩包, 解压后有两个压缩包,分别是验证和汉化, 解压它们. 把这两个jar后缀名的文件复制到 /usr/local/PhpStorm/lib/目录下,
选择菜单 help >>>> Edit Custom VM options (编辑自定义虚拟机选项)
如果没有会提示创建,进行创建
打开文件
最后面加入 一行

-javaagent:/usr/local/PhpStorm/lib/JetbrainsCrack-2.5.6.jar

后面是补丁的路径,根据自己放的位置修改
保存文件
关闭并重新打开phpstorm
到网站 http://15.idea.lanyus.com/ 生成一个激活码
菜单 help >>>>Register
选择Activation Code
将验证码粘贴进去
激活…
OK
关闭并重新打开phpstorm
自此,安装完美结束.
运行PhpStorm2016的方法是,在本地用户下使用终端

$/usr/local/PhpStorm/bin/phpstorm.sh
OR
#/usr/local/PhpStorm/bin/phpstorm.sh

Linux Shell截取字符窜教程

八月 15th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2254.html http://www.myzhenai.com/thread-17908-1-1.html
关键词: Linux截取字符窜 shell截取字符窜 grep截取字符窜 awk截取字符窜
这个教程是hostloc社区上的一个网友提的问题,他的原意是要通过 curl http://pv.sohu.com/cityjson 来获得一些关键的信息,比如ip和国家代码以及所处国家.
其实这个shell的思路很简单,先将curl获得的内容用sed把所有双引号和空格全部过滤掉,然后用awk来搜索相关关键字获得需要的内容.如果是多行的话,还城要再增加一个grep -v 行里的关键字.

# !/bin/bash
var=`curl http://pv.sohu.com/cityjson|sed 's/"//g'|sed -e 's/[ ][ ]*//g'`
cip=`echo $var|awk -F "," '{print $1}'|awk -F "cip:" '{print $2}'`
cid=`echo $var|awk -F ",cname" '{print $1}'|awk -F "cid:" '{print $2}'`
cnme=`echo $var|awk -F "};" '{print $1}'|awk -F "cname:" '{print $2}'`
echo $cip
echo $cid
echo $cnme

如果var变量里返回的数据是多行的话, 还需要在下面的代码上分别增加上grep -v 行里关键字. 例如以下

# !/bin/bash
var=`curl http://pv.sohu.com/cityjson|sed 's/"//g'|sed -e 's/[ ][ ]*//g'`
cip=`echo $var|grep -v cip:|awk -F "," '{print $1}'|awk -F "cip:" '{print $2}'`
cid=`echo $var|grep -v cid|awk -F ",cname" '{print $1}'|awk -F "cid:" '{print $2}'`
cnme=`echo $var|grep -v cname|awk -F "};" '{print $1}'|awk -F "cname:" '{print $2}'`
echo $cip
echo $cid
echo $cnme
Linux Shell截取字符窜教程

Linux Shell截取字符窜教程

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 />";//这是输出客户端系统信息
?>

Linux登录时显示audit:backlog limit exceeded的解决方法

七月 21st, 2016

原创内容,转载请注明出处: http://www.myzhenai.com/thread-17898-1-1.html http://www.myzhenai.com.cn/post/2237.html
我昨天在升级一个Fedora系统时遇到了这样的问题, 开机在进入系统菜单的时候莫明的显示audit:backlog limit exceeded,并且系统非常卡,不能进入系统, 偶尔进入系统后,也会出现不能响应的问题,系统卡住了, 没升级之前的Fedora是23的,升级后的Fedora是24的, 应该是在升级的过程系统遇到了什么问题, 于是搜索网络上对于这个问题的解决方案, 但是发现很多方案都很笼统, 只是说audit 服务对所有的系统调用进行审计操作, 那么问题应该出现在哪呢? 没理由耗费这么多资源. 折腾了一个晚上, 再回过头来想一想,会不会问题是出现在SELinux上? 可能禁止了SELinux说不定问题就能解决. 于是重启系统, 在进入系统的时候快速的把SELinux关闭了. 关闭方法如下:

$sudo vi /etc/selinux/config 
修改成  SELINUX=disable 禁用SeLinux;
修改成  SELINUX=enforcing 使用SeLinux
i键进入编辑模式,Esc键退出编辑模式,Shift键+ZZ键保存更改.
$sudo auditctl -b 8192
$sudo auditctl -D

至此,问题完美解决,再进入系统没有出现这些问题了.