2012年7月9日星期一

豆瓣FM中的彩蛋

打开豆瓣电台,在最右下角能看到“豆瓣实验室
打开后你会在页面左侧看到这个水滴图片(点击查看大图):
熟悉Linux的人都知道这个是一段代码,我把这代码抄了下来(原图第6行中有一个“-c”是错的,应该是“-e”,可能是因为字体太小,不清楚的缘故)
while [ $? -eq 0 ]; do nc -vlp 8888 -e '(r=read; e=echo; $r a b c; z=$r; while [ ${#z} -gt 2 ]; do $r z; done; f=`$e $b|sed "s/[^a-z0-9_.-]//gi"`; h="HTTP/1.1"; o="$h 200 OK"; c="Content"; hd="$c-Type: text/html; charset=utf-8"; if [ -z $f ]; then ($e "$o"; $e $hd; $e; ls | (while $r n; do if [ -f "$n" ]; then $e "<a href=\"/$n\">`ls -gh $n`</a><br>"; fi; done);); elif [[ $f=~eggs ]]; then ($e "$o"; $e $hd; $e; curl http://labs.douban.com/doublo/eggs?k=`$e $f | sed "s/eggs//gi"` 2>/dev/null;); elif [ -f $f ]; then $e "$o"; $e "$c-Type: `file -ib $f`"; $e "$c-Length: `stat -c%s $f`"; $e; cat $f; else $e -e "$h 404 Not Found\n\n404\n"; fi)'; done

这很明显是一个Bash脚本,运行。
这时候用浏览器打开http://localhost:8888
你会看到当前目录的文件列表。
随便点开一个文件,结果是:We need a number after eggs!
那么我们试试看http://localhost:8888/1,返回结果:Next fibonacci!
那肯定下面就是http://localhost:8888/2了,返回还是:Next fibonacci!
按顺序尝试斐波那契数列:1 2 3 5 8 13 21

一直到21的时候,页面显示:
哦!恭喜你中蛋啦!

总结:现在的彩蛋已经不是那么傻瓜化了,已经很有技术含量了。