月度归档:2014年05月

shell实现分析youku会员用户数

写这边文章,主要是看优酷视频的时候。几十秒的预告片,竟然要1分钟的广告,所以我就想知道有多少人被逼无奈买优酷的会员。接下来进入正题!!(有点像渗透信息收集,哈哈)

通过观察优酷的用户
A用户
http://i.youku.com/u/UNQ==
B用户
http://i.youku.com/u/UNg==

我发现一种规律,用户共同的URL为
http://i.youku.com/u/U
所以后面的字符串可能为base64编码,经过测试确定是base64编码
A用户
http://i.youku.com/u/UNQ== ->youku_id为5
B用户
http://i.youku.com/u/UNg== ->youku_id为6
以此类推,可以推理出优酷的用户数已经超6亿

接下来我们是要分析每个用户页面里有木有会员的关键字,然后进行for循环即可遍历出所有会员用户的个数。

通过上图可以发现优酷会员的标志是唯一的,然后以订阅作为字符串结束标志即可(为什么要作为结束表示,因为下面有留言版,要是有会员留言容易有误差)

接下来是shell实现优酷会员数代码

for i in $(seq 1 6000000)
do
 
	base64_uid=`echo $i | perl -e 'use MIME::Base64; $_ = encode_base64(<>); print;'`
	url="http://i.youku.com/u/U${base64_uid}"
	mytest=`GET "$url"`
	vipsuper=`echo ${mytest%subscribe_pNode*}|grep ico__vipsuper`
	if [ "$vipsuper" != "" ]
	then
		vip_youku=$[$vip_youku+1]
		echo "youku id:$i vip youku sum:$vip_youku"
	fi
 
done

看看效果把

顺便放出用php实现的代码(加了个功能,统计删除用户的数目)

$youku_vip=0;
$youku_del=0;
 
for($i=1;$i<630000000;$i++){
 
$url='http://i.youku.com/u/U'.base64_encode($i);
 
$content=@file_get_contents($url);
if($content){
	$youku_member_contents=substr($content,0,strpos($content,'<div class="subscribe" id="subscribe_pNode">'));
 
	if(preg_match('/ico__vipsuper/',$youku_member_contents)){
	$youku_vip++;
	echo 'youku_id:'.$i.' youku vip num:'.$youku_vip."\r\n";
	}
}else{
	$youku_del++;
	echo 'youku_id:'.$i.' delete youku num:'.$youku_del."\r\n";
}
 
}
 
echo 'youku vip count:'.$youku_vip;

效果图片如下

批量扫描IP端口程序 (适用于window&linux)

批量扫描IP端口,根据扫描IP导出IP命名的文件的结果。
假设1.txt文件内容为
127.0.0.1
192.168.1.1
然后我们获取文件内容IP进行扫描
window .bat版本

:1.txt为文件名,根据需求进行修改
:C:\nmap\nmap-6.46\nmap.exe 为namp的路径,根据需求进行修改
:把1.txt与该扫描脚本放一起
@echo off
for /f "delims=、" %%i in (1.txt) do C:\nmap\nmap-6.46\nmap.exe -T3 -A 
-v -p- %%i >%%i.txt

linux shell版本

echo 'start scan ip port!'
cat 1.txt|while read line
do
        nmap -T3 -A -v -p- $line > $line.txt
        echo "scan $line port ok!"
done
echo "scan all ip port ok!"

附上linux扫描结果图

我然后利用扫描出来的文件,进行批量筛选出IP、Port、状态、服务 合成一个文件,然后统计excel文档就很快速了:)