2017年6月

使用PHP获取用户客户端真实IP的解决方案

获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多.

 
function getIp(){
   if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
       $ip = getenv("HTTP_CLIENT_IP");
   else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
       $ip = getenv("HTTP_X_FORWARDED_FOR");
  else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
       $ip = getenv("REMOTE_ADDR");
  else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
           $ip = $_SERVER['REMOTE_ADDR'];
       else
           $ip = "unknown";
       return($ip);

- 阅读剩余部分 -

使用PHP获取客户端真实IP地址?——不可能!

网上一直流传着PHP获取客户端的真实IP地址,无论是怎样的流程无非是通过检查以下参数是否存在来获取IP地址:

HTTP_CLIENT_IP
HTTP_X_REAL_FORWARDED_FOR
HTTP_X_FORWARDED_FOR
REMOTE_ADDR

大部分都是依次检查$_SERVER['']中是否存在上上述参数且不为空则break,那个该值就是IP地址。但需要注意的是:HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 都是可以通过http头部伪造的。

比如:

$http_header[] = 'X-FORWARDED-FOR: 8.8.8.8';
$http_header[] = 'HTTP_X_REAL_FORWARDED_FOR: 8.8.8.8';
$http_header[] = 'CLIENT-IP: 8.8.8.8';

只有REMOTE_ADDR 始终反映出接入网络的第一级路由的 ip,这才是真实的 ip。

事实上,当客户端使用代理的时候,REMOTE_ADDR就会变得不堪一击,而前三个参数却能够获取客户端的真实IP地址。

可是,我们作为良好公司和良好市民,开代理的人毕竟是少数,躲不掉也没辙。一般情况下可以通过以下方法获取客户端的真实IP,但是对代理IP无效。

- 阅读剩余部分 -

KMS 激活方案与常用密钥

KMS 激活方案与常用密钥

1: 激活系统
过程解析 (管理员模式运行 cmd→卸载 KEY(也可以不管直接添加)→添加 KEY→更改激活服务器→激活→查看激活信息)
下面为 windows 命令. 请大家灵活运用

slmgr.vbs -upk
slmgr.vbs -ipk 这里改为你系统版本对应密钥
slmgr.vbs -skms kms.wxlost.com
slmgr.vbs -ato
slmgr.vbs -xpr

2: 激活 Office
过程解析 (管理员模式运行 cmd→使用 CD 命令定位到软件目录下→卸载 KEY(也可以不管直接添加)→添加 KEY→更改激活服务器→激活→查看激活信息)
下面为 Office 命令. 请大家灵活运用, 主要是定位软件安装目录. 其他命令不变
注 1: 仅能在企业版上使用. 也就是带 pro 后缀的

cd %ProgramFiles%\Office2013\Office15
cscript ospp.vbs /sethst:kms.wxlost.com
cscript ospp.vbs /inpkey:这里改为你Office版本对应密钥
cscript ospp.vbs /act
cscript ospp.vbs /dstatus

注 2: 新版本的 Office 企业版自带了一个 KEY. 所以直接更换激活服务器即可激活, 不过万事都有一个如果, 如果你 KEY 无法激活. 请参考上面的命令更换 KEY

cd /d %ProgramFiles%\Microsoft Office\Office16
cscript ospp.vbs /sethst:kms.wxlost.com
cscript ospp.vbs /act
cscript ospp.vbs /dstatus

- 阅读剩余部分 -

linux下fallocate快速创建大文件

以前创建文件我一般用dd来创建,例如创建一个512M的文件:

dd命令可以轻易实现创建指定大小的文件,如

dd if=/dev/zero of=test bs=1M count=1000

会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)

但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢

在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘

- 阅读剩余部分 -

使用 iMacros 来自动化日常的工作

不管在哪一个行业,测试已经成为制造,开发流程中,一个必要的环节。特别是指软件行业。 近年来由于 Web Application 的开发,是市场上热门的显学,虽然不到汉武帝“独尊儒术”的一统天下,但是根据有效的问卷调查,Web 工程师的人数是最多的。 这么多的人才,每天花了这么多时间在工作上,累积的成果是惊人的,各种工具也跟着蓬勃发展。Web 自动测试,如今已经不是任何新鲜的话题,现今,很多成熟的工具我们可以随手使用,比起多年前,现在的 Web 工程师,效率应该是远远胜于以往。
这里介绍的 iMacros 是一个浏览器的附加组件,经过长时间的发展,已经被无数人验证过是个非常强大的工具。iMacros正如其名,这个工具主要是借由编辑宏(Macros)来操控浏览器,来实现以往需要使用鼠标键盘的人手操作。

iMacros 简介

iMacros 主要用来操作运行 Web Browser,对于主要的 Web Browser:IE、Chrome、Firefox 都有支持。这篇文章主要使用 FireFox 为例子来做说明。
iMacros 经过了多年的发展。功能越来越先进。但是有一点或许大家可以先记住,就是这个工具的角色定位,并不是一个 Almighty-全能的工具,乃是专注与它一开始的角色设定-用来操作浏览器。如此一来,在判断这个工具能做到什么,和不能做到什么的时候,即使不看说明书,都可以做出一个大概的判断。
iMacros 具有类似功能的插件或是程序库,按照各种不同的需求,目前已经有很多成熟的解决方案。个人觉得依赖于既有浏览器来实现的方式是最轻省的,可以说是站在巨人的肩膀上,因为省去开发浏览器的环节,大大的减低开发的难度与代码量,也提高应用的便利性。
如果不依赖浏览器的话就必须要程序去实现浏览器的功能了。举出几个例子,比方说是 Perl 里面的 LWP(Library for WWW in Perl)或是 Java 里面的 httpclient 等等。请参见参考资源部分。

接下来我们就开始来说明如何使用这个小而强大的工具 iMacros

- 阅读剩余部分 -

Nginx反代超详细教程:加速网站Google、Gravatar和Hostloc

nginx 这个轻量级、高性能的 web server 主要可以干两件事情:

1、直接作为http server(需要Fastcgi配合);
2、作为反代服务器(进一步可以实现均衡负载)。

这里主要利用一下反功能来方便一下日常生活。选择Gravatar当例子是因为尼玛我发现了我这的移动把Gravatar整站都墙了,还有hostloc也是移动访问困难。

- 阅读剩余部分 -

利用 cloudflare flexible ssl实现wordpress全站强制https

为了防止GFW的关键词阻断,个人网站需要https加密。要实现https功能,一种方法是购买证书,当然现在也可以申请到免费证书,但前提是空间要支持自有证书。另外一种方式比较简单,就是利用cloudflare的flexible ssl功能,实现wordpress全站强制https。

原理很简单:

  • 利用cloudflare的CDN功能,让cloudflare充当客户端与wordpress hosting之间的缓冲。
  • 开启cloudflare的flexible ssl功能,使客户端与cloudflare缓冲之间的通讯流量加密。

201511061

- 阅读剩余部分 -

Lets Encrypt 配置SSL错误 DNS problem: NXDOMAIN looking up A for xxx

之前写过一篇文章,使用oneinstack自动配置let's encrypt ssl证书,原文地址:

oneintsack的好处自然不用多说了,真的特别方便,而且最大的好处就是,linux上各种东西即使用了一键部署工具,但是还是可以进行DIY配置。

SSL 多域名当然是 let's encrypt 莫属了,买多域名证书还是比较贵- -都超过了服务器价格了。

请输入图片描述

一、问题:

今天使用Let's Encrypt 配置 SSL 证书的时候,报了一个错误:

DNS problem: NXDOMAIN looking up A for xxx.com

- 阅读剩余部分 -

meiyoutongji