分类目录归档:Internet

Python小程序: ServerInformation

监听一个端口,提供HTTP接口,通过访问Web地址,调用程序获取各种信息。

例如,想在远程服务器上执行free命令查看远程服务器的内存使用情况,

free -m 的base64编码为 ZnJlZSAtbQ==,则访问下面的地址:

http://xiaoxia.org:10000/ZnJlZSAtbQ==

提交之后返回类似于下面的结果,

             total       used       free     shared    buffers     cached
Mem:           118        114          4          0          3         36
-/+ buffers/cache:         74         44
Swap:          255         56        199

为了安全使用,在CommandList文本文件里保存着一个命令列表,即可以允许调用的程序。

ps aux
free -m
netstat -na
cat /proc/meminfo
cat /proc/cpuinfo

继续阅读

均衡一下负载,把mysql移到了另外一个vps

博客的vps,因为运行太多的应用,包括mysql、php-cgi、webserver、ftpd、pptpd、fox3、smtpd等,物理内存使用早已经超过总内存128MB,swap也用了50多MB,所以出现了访问网页经常因为IO读写而卡一会儿的问题。

前几天,在EMSVPS上申请了一个35元的,跟我现在博客服务器用的配置基本相同的vps。就是这个价钱太小了,还是xen vps,让我担心会不会经常出问题,所以先用一段时间,目前用作负载均衡,分担了内存占用大,运行又慢的mysql服务器。

主服务器上的内存使用状况:

http://xiaoxia.org:10000/ZnJlZSAtbQ==

辅服务器上的内存使用状况:

http://xsign.org:10000/ZnJlZSAtbQ==

继续阅读

浅谈某些网页验证码以及绕过验证

平时上网纵观各式各样的验证码,能起到识别人为操作,避免机器人作用的不到半数。

此前,我已经写过一篇关于验证码识别的文章《无聊入门一下传说中的验证码识别技术》

很多很多验证码都是很水的。他们能起的作用是,

1. 加这个验证码是让查的人不那么急,流量不那么拥挤 (wf同学认为)

2. 加这个验证码的目的可能是让用户有机会停下来确认输入的数据是否正确 (44670同学)

 

案例一

首先,看看广东教育考试院首页的登录验证嘛,我到浏览器是firefox!

我擦,这是什么验证码,居然还分两行显示,教育部门都这么先进了吗?

继续阅读

节约网络流量的方案和NetworkMonitor提示小程序

Firefox安装节省流量方案的插件:

Adblock: 拦截网页广告的下载
Flashblock: 拦截Flash自动下载播放 ,通过鼠标点击来下载播放Flash程序。
ImgLikeOpera: 拦截图片的自动下载显示,通过鼠标点击来加载需要下载显示的图片。

NetworkMonitor小程序:

随时查看使用流量:

当使用超过1MB流量时,显示警告信息:

继续阅读

Ubuntu下使用E261接入wcdma的3gnet

两张手机卡的2g上网流量都差不多被我用完了,两张卡的上网套餐加起来30元,流量加起来220MB,贵的要命,不过要上网没办法。本地搜到的一个wifi用WPA2加密不会破解撑网。前些天雨天路过一间小小的联通营业厅,看到有36元的800MB本地流量套餐,心动了就决定办一个,用超了流量1毛钱1MB总比GPRS的1块钱1MB好。中午在营业厅里,技术人员在我笔记本的Win7系统上测试,插上华为E261的3g modem,装了一堆驱动程序和一个联通的网络拨号软件,跑起来占CPU和内存异常的高。不过,看到能够打开网页了,速度挺乐观的,还真叫人开心。不过那个流量实在是跑得太快了,打开某门户网站的页面就去了几MB。

回去自己在Ubuntu上试试,按照网上的说法,应该要安装一个usb-modeswitch,然后写个配置文件。但实际操作却大吃一惊,刚把E261插进电脑,就识别出GSM Modem了,然后网络连接里多了一个新建GSM连接的选项。


继续阅读

简单的网络文件传输示例,多线程传一个目录!(pickle很实用)

写了很多年C/C++代码了,有时候换了一种语言去写程序,还是发觉自己的代码始终没有摆脱C的风格和思想。

正当我考虑是否用Python里struct的pack和unpack函数来实现C里的结构功能的时候,我想起来有个东西叫做pickle,可以把一个对象编译成字符串然后保存到外部文件。既然可以这样做,那么我想可不可以用它来把一些数据都用pickle来打包,然后把生成的字符串通过网络传输到另外一个程序,然后得到这些数据内容呢?经过了一些测试,我发现是可行的。

在Python的官网文档上说,有个叫cPickle的东西,和pickle实现了一样的功能,只不过cPickle是用C语言实现的,工作起来效率高很多。另外还了解到Python的marshal也可以实现一样的功能,只不过它没有文档化,不是一个公共的库,会随着版本变化而改变,所以不推荐使用。

对pickle使用方法的详细文档在http://docs.python.org/library/pickle.html

继续阅读

无聊入门一下传说中的验证码识别技术,学习笔记

背景

笔记本硬盘坏了,数据没了,盘里面的数据价值肯定超过联想数据恢复的RMB1500高价,不过当时身五分银,还是算了。。。
新硬盘需要重装很多东西,今晚在群里看到给宿舍评分的给力投票,网址上的验证码做得很水,想涉足一下传说中的验证码识别技术!


继续阅读

查询域名状态(用python解析网页返回的XML数据,gd转utf8)

一段Python代码测试域名是否可以注册。用到了panda.www.net.cn提供的一个接口,返回的是一个XML数据。

例如
在浏览器里输入

http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=xiaoxia.org

返回值是

<?xml version="1.0" encoding="gb2312"?>
<property>
<returncode>200</returncode>
<key>xiaoxia.org</key>
<original>211 : Domain name is not available</original>
</property>

使用xml.etree.ElementTree来解析上面的XML数据。
因为它不支持gb2312,所以需要在解析前,转换成utf-8格式的。
然后判断original的值来得知域名是否可用。 继续阅读

国内域名注册商的技术有待提高……

停站3天了,今晚把域名的问题解决了,最后竟然还是我自己解决的。

好吧,追寻一下原因!

5月14日,域名过期后的一个小时内,我完成了续费。但是域名还是无法使用,nslookup找不到域名。

5月15日,域名仍然无法使用。
1、我尝试打二级注册商的固化或者手机联系客服,结果固化没人接,所有手机关机。网页客服半天才回我这个老客户一句话。好不容易找到技术人员进行网页对话,说域名过期是我的错,叫我等72小时候再找他解决。
2、我尝试写投诉信给ICANN,结果提示我在一周内已经写过投诉信了,提交失败。
3、我打电话给域名的一级注册商,技术人员说24小时候会恢复正常,叫我稍等。

5月16日,域名依旧无法使用。
1、我又去联系二级注册商的客服,这次是他们说域名客服不在,叫我明天再联系他们。
2、我又去联系一级注册商的客服,这次说我的域名正常,没有发现任何问题。叫我去whois一下。
3、我whois了一下,没看懂,发现别人的域名有Status: OK, 而我的却是Status: RENEWPERIOD,没有OK,不会看!nslookup依然提示找不到域名。
4、我去域名控制面板里修改了DNS,然后神奇的复活了。

总结原因如下,
域名过期那一刹那,注册商的域名管理系统里把我的域名锁定了,NS条目删除了。域名续费后,他们又没有帮我恢复NS的条目,虽然我打开域名管理系统,依然能清晰地看到那两个NS服务器,但是没有被实际生效。
直到我重新刷了一下NS服务器,一切都恢复正常!

好吧!本来瞬间可以解决的问题,却被某些客服的回答耽误了我三天时间。
啊!!我的网友们,我好想念你们……