Archive for May, 2009

[Linux] 利用curl和ip138的数据库来查询IP地址地理位置

2009.5 10

现在大多说人都是利用www.ip138.com 来查询ip所在的地理位置。
我们利用网页来查询就是提交了一个表单。向服务器传递了两个变量ip和action。

在下面输入框中输入您要查询的IP地址或者域名,点击查询按钮即可查询该IP所属的区域。

IP地址或者域名:

其中action是隐藏的,ip就是我们要查询的ip地址或者域名。onsubmit=”return checkIP();是检查我们的ip输入格式是否正确。

首先我们用curl来向服务器做查询请求:
curl -s -d “ip=XXX&action=2” http://www.ip138.com/ips.asp
其中-d 一个POST请求,ip=后面跟着的是ip地址或者域名,action=2是固定的。
这样服务器会向我们返回一个编码为gb2312的网页,其中包含我们查询的结果。
然后通过管道传到iconv -f gb2312 -t utf-8 转换为utf-8。
得到的网页有这个么几行:

 
      
          

ip138.com IP查询(搜索IP地址的地理位置)

www.baidu.com >> 202.108.22.5

  • 本站主数据:北京市 网通
  • 参考数据一:北京市 网通
  • 参考数据二:北京市 百度蜘蛛

最后一行就是我们要的数据,我们通过grep找到这一行。有css的样式id为ul1 ,所以为grep ‘ul class=”ul1″‘。最终我们得到:

  • 本站主数据:北京市 网通
  • 参考数据一:北京市 网通
  • 参考数据二:北京市 百度蜘蛛

最后通过sed把html的标记去除和转换。

sed -e 's/^.*">
  • /\t/' -e 's/<\/li>
  • /\n\t/g' -e 's/<.*$//'
  • -e 's/^.*">
  • /\t/'
  • 这个的意思是把这一行开始到最后变为\t 。就是本站主数据前面的东东都为\t.
    然后把

    </li></li>

    变为

    \n\t.

    最后是参考数据二后面的<到最后全部删除。

    curl -s -d "ip=$1&action=2" http://www.ip138.com/ips.asp|iconv -f gb2312 -t utf-8|grep 'ul class="ul1"'|sed -e 's/^.*">
  • /\t /' -e 's/<\/li>
  • /\n\t/g' -e 's/<.*$//'
  • $1 为要查询的的ip或者域名。

    这里没有考虑到ip不正确或者域名解析不成功的情况。

    [建站日志] 树大招风啊?

    2009.5 3

    最近这评论挺烦心的,都是些外国的洋文广告!找了个验证码的插件,好像是不管用啊?是不是太简单了,被识别出来了?再找找原因。

    还有,如果你做了评论,那么你可以立即看看你的评论被提交。但是如果想让被人也看到,得要管理员允许才可以。不像别的地方,你写了个留言,只是显示 要等管理员许可后别人才能看到。让人看着不爽!

    [Windows] Windows 克隆账号

    2009.5 2

    关于克隆账号

    通过在网上寻找资料,查看相关的教程,克隆账号就是克隆管理员Administrator的账号。windows添加隐藏账户

    克隆账号是通过修改注册表的SAM来实现的。SAM是windows 用来管理账号信息的数据库。

    在注册表的HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\下有Users和Names,其中Names是用户名。要修改SAM,需要修改一下这个键值的权限,可以选中这个键值后,通过编辑下的权限来修改。Names下的类型对应着Users的某个键值。例如:Administrator下键值为0x1f4,则在Users对应000001f4。Administrator这个用户名可以改,但是其下面的键值是不变的。

    通过把Users下管理员的f值复制到我们新添加的账户的f值。然后导出相应的注册表的值。删除我们的账号,导入我们导出的注册表。这样在计算机管理中的用户管理中就看不到我们新添加的用户,但是在注册表中却又这样的账户。并且是克隆的管理员的账户。

    有一个缺点就是用我们新添加的用户登陆后,会在Documents and Settings有配置文件。

    2009-08-11补充:

    可以把管理员账号克隆成Guest,这样就不用新建用户了,不容易被管理员发现。

    扩展:

    windows 添加用户并加入Administrator组的命令:

    net user gslw$ test168 /add

    net localgroup administrators gslw$ /add

    net user user-name PASSWORD

    启用来宾:net user guest /active:yes

    [AMP] 自动备份blog到自己的邮箱

    2009.5 1

    基本思路:

    1:备份文件

    workdictory=/root/backup

    date=$(date +%Y%m%d%H%M%S)

    数据库:mysqldump导出

    mysqldump -uUSERNAME -pPASSWORD DataName>${workdictory}/database_${date}.sql

    后台文件:tar

    tar -cf ${workdictory}/blog_${date}.tar -C /var/www/html blog

    2:删除重复文件 md5sum uniq cut

    用md5sum算出备份文件的指纹,uniq做去重工作。

    3:加密 这里使用了7zip

    我们只发送最新而且是有变化的文件到我们的邮箱。所以上一步中删除了重复的文件,这里判断一下某个文件是最新的而且是没有发送过的。

    4:发邮件到指定邮箱

    mutt -a $new.zip  -s “$(date +%Y-%m-%d-%H:%M:%S) `basename $new.zip`” XXX@qq.com</dev/null

    5:加入脚本到crond中

    [Windows] Windows’s backdoor

    2009.5 1

    今天早上刚学了一招。windows远程桌面在输入密码前,可以用Win+U键调用辅助工具管理器来打开放大镜程序。如果我们曾获得过windows的管理员权限,那么就可以把放大镜程序替换成我们的程序。在我们每次用远程桌面登陆windows的时候,调用这个程序来添加一个管理员的账号。那么即使原来的管理员账号改密码了,我们照样可以登陆。20090501121842259没有输入密码就可以 先运行程序,可以算个漏洞!

    留下的放大镜程序,怎么被系统都自动换成换来的了?dllcache中的文件不是也替换了吗?怎么搞的?