msgbartop
用铅笔写日记,记录那最原始的美丽
msgbarbottom

突破百度网盘普通用户保存文件限制数量1000的坑

最近公司年会,今天负责拍照的小伙伴把年会上拍摄的照片(没打包)的文件夹传到了百度网盘里面,分享给大家供下载。

一般我的操作是直接选中该文件夹然后点击“保存到我的网盘”,设置一个目录就完事了。看不看那是以后的事情。

结果坑爹的事情来了,经过长时间的卡顿之后,提示我“文件数量超过1000,出错了”。

后来一查才知道,普通用户是有这个限制的。开通超级会员就没这个限制了,可能有,但是上限可能是几万,而不是少的可怜的1000.

我最初的想法是,手动选文件。毕竟一共是1185张照片,全选,然后勾掉最后的185个文件就行了,只留1000个,最后再单独把185个保存下。

可能是当我点到第20个时候我放弃了,太tmd难点了。。。

尝试1:
因为考虑到百度的web文件列表是lazy load 的,而且一次只加载100个文件。我先选中“全选”,100个文件被选中。而后慢慢的拉动滚动条,触发它再次加载100-200这个区间的文件。以此类推,可以坚持到900,或1000个文件被选中。这时候点击“保存到我的网盘”。也可以成功。只不过最后的1百多个文件需要手动处理,也不是很方便。而且不知为何,会产生重复文件的副本,需要手动删除。

不怎么完美。

尝试2:
考虑到其实我只是需要一个代替我手动点击的东西,研究了一下百度的html/css/js.发现了它文件列表的一些命名规律。

打开浏览器的开发者工具,console 栏,键入

$("dd.g-clearfix").each(function(i,it){if(i >= 0 && i < 800){$(it).children("span").trigger("click");}})

0 是开始的编号,800 是结束的编号。就是用脚本选中这1千多张照片里面的,第1到第800张照片。然后点击“保存到我的网盘”即可。

再一次执行该脚本,把 0 和 800 改成 800 到 1184,就可以只用两次保存搞定这1千多张照片。

BaiduPCS-Go:toplist SharlJimhTsin$ ls

当前目录: /我的照片/toplist
----
   #     文件大小        修改日期                文件(目录)           
     0      4.78MB  2019-01-28 18:26:54  K75A1446.JPG                 
     1      5.47MB  2019-01-28 18:26:54  K75A1447.JPG                 
     2      5.16MB  2019-01-28 18:26:54  K75A1451.JPG                 
     3      9.19MB  2019-01-28 18:26:54  K75A1453.JPG                 
     4      5.15MB  2019-01-28 18:26:54  K75A1455.JPG                 
     5      6.14MB  2019-01-28 18:26:55  K75A1459.JPG                 
     6      5.07MB  2019-01-28 18:26:55  K75A1460.JPG                 
     7      8.76MB  2019-01-28 18:26:55  K75A1462.JPG                 
     8      4.37MB  2019-01-28 18:26:55  K75A1464.JPG                 
     9      9.63MB  2019-01-28 18:26:55  K75A1468.JPG                 
    10      9.40MB  2019-01-28 18:27:01  K75A1472.JPG                 
    11      4.97MB  2019-01-28 18:27:01  K75A1474.JPG                 
    12      8.48MB  2019-01-28 18:27:01  K75A1475.JPG                 
    13      9.09MB  2019-01-28 18:27:01  K75A1476.JPG                 
    14      8.24MB  2019-01-28 18:27:01  K75A1479.JPG                 
    15      7.60MB  2019-01-28 18:27:02  K75A1480.JPG                 
    16      8.92MB  2019-01-28 18:27:02  K75A1481.JPG                 
    17      9.12MB  2019-01-28 18:27:02  K75A1482.JPG                 
    18      8.46MB  2019-01-28 18:27:02  K75A1483.JPG                 
    19      6.92MB  2019-01-28 18:27:02  K75A1484.JPG                 
    20      7.09MB  2019-01-28 18:27:02  K75A1485.JPG                 
    21      6.59MB  2019-01-28 18:27:02  K75A1487.JPG                 
    22      9.07MB  2019-01-28 18:27:03  K75A1489.JPG                 
    23      9.07MB  2019-01-28 18:27:03  K75A1496.JPG                 
    24     10.38MB  2019-01-28 18:27:03  K75A1498.JPG                 
    25      8.09MB  2019-01-28 18:27:03  K75A1499.JPG                 
    26      6.30MB  2019-01-28 18:27:04  K75A1502.JPG                 
    27      6.92MB  2019-01-28 18:27:04  K75A1503.JPG                 
    28      5.56MB  2019-01-28 18:27:04  K75A1504.JPG                 
    29      5.40MB  2019-01-28 18:27:04  K75A1506.JPG                 
    30      3.33MB  2019-01-28 18:27:04  K75A1510.JPG                 
    31     17.11MB  2019-01-28 18:27:05  K75A1516.JPG                 
    32     14.67MB  2019-01-28 18:27:05  K75A1518.JPG                 
    33      8.29MB  2019-01-28 18:27:05  K75A1520.JPG                 
    34      8.53MB  2019-01-28 18:27:05  K75A1521.JPG                 
    35      8.99MB  2019-01-28 18:27:05  K75A1522.JPG                 
    36      8.72MB  2019-01-28 18:27:05  K75A1523.JPG                 
    37      8.23MB  2019-01-28 18:27:06  K75A1524.JPG                 
    38     10.21MB  2019-01-28 18:27:06  K75A1526.JPG                 
    39      8.43MB  2019-01-28 18:27:06  K75A1528.JPG                 
    40      8.78MB  2019-01-28 18:27:06  K75A1529.JPG                 
    41     10.38MB  2019-01-28 18:27:06  K75A1530.JPG                 
    42      9.29MB  2019-01-28 18:27:06  K75A1531.JPG                 
    43     11.84MB  2019-01-28 18:27:07  K75A1532.JPG                 
    44      9.63MB  2019-01-28 18:27:07  K75A1533.JPG                 
    45      8.58MB  2019-01-28 18:27:08  K75A1534.JPG                 
    46      6.74MB  2019-01-28 18:27:08  K75A1535.JPG                 
    47      9.61MB  2019-01-28 18:27:09  K75A1536.JPG                 
    48      9.98MB  2019-01-28 18:27:11  K75A1537.JPG                 
    49     10.04MB  2019-01-28 18:27:11  K75A1538.JPG                 
    50     10.48MB  2019-01-28 18:27:12  K75A1539.JPG                 
    51      9.58MB  2019-01-28 18:27:13  K75A1540.JPG                 
    52     10.41MB  2019-01-28 18:27:14  K75A1541.JPG                 
    53     10.08MB  2019-01-28 18:27:16  K75A1542.JPG                 
    54     11.86MB  2019-01-28 18:27:16  K75A1544.JPG                 
    55     11.79MB  2019-01-28 18:27:16  K75A1545.JPG                 
    56     11.81MB  2019-01-28 18:27:16  K75A1546.JPG                 
    57     11.18MB  2019-01-28 18:27:16  K75A1547.JPG                 
    58     10.28MB  2019-01-28 18:27:17  K75A1548.JPG                 
    59     10.19MB  2019-01-28 18:27:17  K75A1549.JPG                 
    60     10.63MB  2019-01-28 18:27:17  K75A1550.JPG                 
    61      9.65MB  2019-01-28 18:27:17  K75A1551.JPG                 
    62     10.26MB  2019-01-28 18:27:17  K75A1552.JPG                 
    63      5.99MB  2019-01-28 18:27:18  K75A1553.JPG                 
    64      5.77MB  2019-01-28 18:27:18  K75A1554.JPG                 
    65      5.74MB  2019-01-28 18:27:18  K75A1555.JPG                 
    66      5.56MB  2019-01-28 18:27:18  K75A1556.JPG                 
    67      5.65MB  2019-01-28 18:27:18  K75A1557.JPG                 
    68      5.77MB  2019-01-28 18:27:18  K75A1558.JPG                 
    69      5.94MB  2019-01-28 18:27:19  K75A1560.JPG                 
    70      5.64MB  2019-01-28 18:27:19  K75A1561.JPG                 
    71      4.44MB  2019-01-28 18:27:19  K75A1562.JPG                 
    72      4.62MB  2019-01-28 18:27:19  K75A1563.JPG                 
    73      5.88MB  2019-01-28 18:27:19  K75A1564.JPG                 
    74      5.84MB  2019-01-28 18:27:19  K75A1565.JPG                 
    75      4.78MB  2019-01-28 18:27:20  K75A1566.JPG                 
    76      4.88MB  2019-01-28 18:27:20  K75A1567.JPG                 
    77      4.74MB  2019-01-28 18:27:20  K75A1568.JPG                 
    78      4.81MB  2019-01-28 18:27:20  K75A1569.JPG                 
    79      5.57MB  2019-01-28 18:27:20  K75A1570.JPG                 
    80      5.53MB  2019-01-28 18:27:20  K75A1571.JPG                 
    81      5.36MB  2019-01-28 18:27:21  K75A1572.JPG                 
    82      5.23MB  2019-01-28 18:27:21  K75A1573.JPG                 
    83      5.46MB  2019-01-28 18:27:21  K75A1574.JPG                 
    84      5.43MB  2019-01-28 18:27:21  K75A1575.JPG                 
    85      6.09MB  2019-01-28 18:27:21  K75A1576.JPG                 
    86      5.99MB  2019-01-28 18:27:21  K75A1577.JPG                 
    87      6.30MB  2019-01-28 18:27:22  K75A1578.JPG                 
    88      5.06MB  2019-01-28 18:27:22  K75A1579.JPG                 
    89      5.11MB  2019-01-28 18:27:22  K75A1580.JPG                 
    90      5.64MB  2019-01-28 18:27:22  K75A1581.JPG                 
    91      5.69MB  2019-01-28 18:27:22  K75A1582.JPG                 
    92      4.64MB  2019-01-28 18:27:22  K75A1583.JPG                 
    93      4.59MB  2019-01-28 18:27:23  K75A1584.JPG                 
    94      5.60MB  2019-01-28 18:27:23  K75A1585.JPG                 
    95      5.29MB  2019-01-28 18:27:23  K75A1587.JPG                 
    96      5.24MB  2019-01-28 18:27:23  K75A1588.JPG                 
    97      6.43MB  2019-01-28 18:27:23  K75A1589.JPG                 
    98      6.43MB  2019-01-28 18:27:24  K75A1590.JPG                 
    99      6.12MB  2019-01-28 18:27:24  K75A1591.JPG                 
   100      6.18MB  2019-01-28 18:27:24  K75A1592.JPG                 
.........
  1177      7.71MB  2019-01-28 17:18:51  K75A2816.JPG                 
  1178      7.76MB  2019-01-28 17:18:51  K75A2817.JPG                 
  1179      7.54MB  2019-01-28 17:18:51  K75A2818.JPG                 
  1180      7.83MB  2019-01-28 17:18:50  K75A2819.JPG                 
  1181      7.17MB  2019-01-28 17:18:50  K75A2820.JPG                 
  1182      6.90MB  2019-01-28 17:18:50  K75A2821.JPG                 
  1183      7.38MB  2019-01-28 17:18:50  K75A2822.JPG                 
  1184      6.70MB  2019-01-28 17:18:50  K75A2823.JPG                 
        总: 9.35GB                       文件总数: 1185, 目录总数: 0  

当前目录: /我的照片/toplist
----

比较完美。

注:若是产生了副本文件,可以考虑使用 BaiduPCS-Go (https://github.com/iikira/BaiduPCS-Go) 开源客户端,直接删除即可。

BaiduPCS-Go:toplist SharlJimhTsin$ rm *(1).JPG
文件路径匹配失败, 请检查通配符
BaiduPCS-Go:toplist SharlJimhTsin$ rm *(2).JPG
文件路径匹配失败, 请检查通配符

还有需要注意的是,第二种方法执行脚本前一定要先把文件列表的lazy load 全部加载完。鼠标一直拖到下面,拖到不能再拖。否则元素数量可能会少。

当然了,这些问题如果你已经是百度网盘超级会员,根本不是问题。:-)

本站已托管至谷歌云平台

最近忽然对国外的几个互联网巨头的云服务产生了浓厚的兴趣,利用手里的外币卡分别开通了Amazon AWS,Microsoft Azure 以及 Google GCP.

AWS 和 GCP 都声称可以免费试用一年,分别给了一定的试用金额度,以两者中先消耗殆尽的为准。

Azure 的免费试用期只有一个月,后来发现一个月到期后只要升级到 即用即付 订阅,微软还是提供了几个low-level 的云产品的一年试用配额的,也算是有点良心啊~哈哈

不过GCP 和 Azure 一年试用到期后,我是不打算在继续用了,因为微软的太贵,而谷歌的线路炸的太厉害,可能是国内很多人通过“删除结算账号,再添加一张新信用卡”的方式,反复获取那$300一年的免费试用周期吧,给我感觉很不稳定。

倒是 AWS 让我眼前一亮,AWS Lightsail 套餐月付只有$3.5,折合人民币二十几块钱,日本线路ping 值很低,几乎50+- ms,性价比极高。本人吐血推荐购买。

以上是题外话。

本来我的博客是托管在搬瓦工(BWH)上面的,也是同样的问题,线路炸的太频繁,没有让我感觉到它的任何优点。一次偶然的机会让我看到了GCP 提供一个美区(不包括北弗吉尼亚地区)的 f1-micro 实例供用户永久免费使用。具体配置如下:

每月 1 个 f1-micro 实例(仅限美国区域 - 不包括北弗吉尼亚地区)

每月 30 GB HDD,每月 5 GB 快照

每月 1 GB 网络出站流量 - 从北美到所有区域目的地(不包括中国和澳大利亚)

参见: Google Cloud Platform 免费方案

这让我眼前一亮,我现在这个bwh服务器年付$39.99,说实话用处也不大,速度嘛也没啥优势,况且我现在也套了cf 的 cdn,感觉没啥区别了。

留着它用处确实没啥,索性把网站搬到GCP 美区实例上去,把bwh 给退了。能省则省嘛,哈哈。

说干就干,找个空闲的时候,我就把数据,配置备份,然后在新实例上部署环境,确认两边ok后,把数据导入了进去。由于套了cf 的cdn,登陆cf 后台,改了一下DNS相关记录,就坐等生效了。

搬完之后访问了一下,速度还蛮OK的。

附延迟测试数据:

on GCP via Cloudflare
MacBook-Pro-3:Documents toplist$ ping xiazhengxin.name
PING xiazhengxin.name (104.27.176.20): 56 data bytes
64 bytes from 104.27.176.20: icmp_seq=0 ttl=54 time=179.096 ms
64 bytes from 104.27.176.20: icmp_seq=1 ttl=54 time=165.458 ms
64 bytes from 104.27.176.20: icmp_seq=2 ttl=54 time=221.086 ms
64 bytes from 104.27.176.20: icmp_seq=3 ttl=54 time=244.089 ms
64 bytes from 104.27.176.20: icmp_seq=4 ttl=54 time=266.278 ms
64 bytes from 104.27.176.20: icmp_seq=5 ttl=54 time=185.729 ms
64 bytes from 104.27.176.20: icmp_seq=6 ttl=54 time=208.304 ms
64 bytes from 104.27.176.20: icmp_seq=7 ttl=54 time=232.247 ms
64 bytes from 104.27.176.20: icmp_seq=8 ttl=54 time=254.497 ms
64 bytes from 104.27.176.20: icmp_seq=9 ttl=54 time=176.149 ms
64 bytes from 104.27.176.20: icmp_seq=10 ttl=54 time=198.623 ms
64 bytes from 104.27.176.20: icmp_seq=11 ttl=54 time=222.786 ms
64 bytes from 104.27.176.20: icmp_seq=12 ttl=54 time=244.178 ms
64 bytes from 104.27.176.20: icmp_seq=13 ttl=54 time=251.045 ms
64 bytes from 104.27.176.20: icmp_seq=14 ttl=54 time=188.904 ms
^C
--- xiazhengxin.name ping statistics ---
15 packets transmitted, 15 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 165.458/215.898/266.278/31.276 ms

on BWH
MacBook-Pro-3:Documents toplist$ ping bwh.xzx.im
PING bwh.xzx.im (104.153.103.172): 56 data bytes
64 bytes from 104.153.103.172: icmp_seq=0 ttl=50 time=141.367 ms
64 bytes from 104.153.103.172: icmp_seq=1 ttl=50 time=142.667 ms
64 bytes from 104.153.103.172: icmp_seq=2 ttl=50 time=145.147 ms
64 bytes from 104.153.103.172: icmp_seq=3 ttl=50 time=142.224 ms
64 bytes from 104.153.103.172: icmp_seq=4 ttl=50 time=188.251 ms
64 bytes from 104.153.103.172: icmp_seq=5 ttl=50 time=142.178 ms
64 bytes from 104.153.103.172: icmp_seq=6 ttl=50 time=234.048 ms
64 bytes from 104.153.103.172: icmp_seq=7 ttl=50 time=252.443 ms
64 bytes from 104.153.103.172: icmp_seq=8 ttl=50 time=170.327 ms
64 bytes from 104.153.103.172: icmp_seq=9 ttl=50 time=193.155 ms
64 bytes from 104.153.103.172: icmp_seq=10 ttl=50 time=217.860 ms
64 bytes from 104.153.103.172: icmp_seq=11 ttl=50 time=240.174 ms
64 bytes from 104.153.103.172: icmp_seq=12 ttl=50 time=160.681 ms
64 bytes from 104.153.103.172: icmp_seq=13 ttl=50 time=259.157 ms
64 bytes from 104.153.103.172: icmp_seq=14 ttl=50 time=271.898 ms
64 bytes from 104.153.103.172: icmp_seq=15 ttl=50 time=228.873 ms
^C
--- bwh.xzx.im ping statistics ---
16 packets transmitted, 16 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 141.367/195.653/271.898/46.145 ms

on GCP
MacBook-Pro-3:Documents toplist$ ping gcp.xzx.im
PING gcp.xzx.im (35.230.16.233): 56 data bytes
64 bytes from 35.230.16.233: icmp_seq=0 ttl=50 time=204.657 ms
64 bytes from 35.230.16.233: icmp_seq=1 ttl=50 time=226.352 ms
64 bytes from 35.230.16.233: icmp_seq=2 ttl=50 time=248.862 ms
64 bytes from 35.230.16.233: icmp_seq=3 ttl=50 time=169.600 ms
64 bytes from 35.230.16.233: icmp_seq=4 ttl=50 time=191.350 ms
64 bytes from 35.230.16.233: icmp_seq=5 ttl=50 time=219.921 ms
64 bytes from 35.230.16.233: icmp_seq=6 ttl=50 time=237.154 ms
64 bytes from 35.230.16.233: icmp_seq=7 ttl=50 time=261.225 ms
64 bytes from 35.230.16.233: icmp_seq=8 ttl=50 time=182.807 ms
64 bytes from 35.230.16.233: icmp_seq=9 ttl=50 time=203.962 ms
64 bytes from 35.230.16.233: icmp_seq=10 ttl=50 time=227.414 ms
64 bytes from 35.230.16.233: icmp_seq=11 ttl=50 time=250.583 ms
64 bytes from 35.230.16.233: icmp_seq=12 ttl=50 time=172.640 ms
64 bytes from 35.230.16.233: icmp_seq=13 ttl=50 time=194.657 ms
64 bytes from 35.230.16.233: icmp_seq=14 ttl=50 time=214.056 ms
64 bytes from 35.230.16.233: icmp_seq=15 ttl=50 time=230.942 ms
^C
--- gcp.xzx.im ping statistics ---
16 packets transmitted, 16 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 169.600/214.761/261.225/27.036 ms

我新买的自行车被偷走之后

是的,就在上周一的时候,我新买的自行车,停在我公司的楼下,下班的时候发现被偷走了。

这已经是我被偷走的第二辆自行车了。

无论如何,我想我不能再忍受多一分钟了。

那一刻,我似乎都有了一股想要和小偷拼命的想法。只是苦于无法知道是哪个该死的贼?

按照流程,我报了警,录了口供,并出示了一堆证据,发票之类的。

我努力的想让自己平静下来,可是我做不到。

我发现我会一次次的怒火中烧,已经快被遗忘的NOKIA N9也慢慢的浮上了我的心头。这是我的另一块痛处。

我发誓我平生从来没有这么的恨过这样的一群人。

在接下来的连续的几天里,我总是无法平静。我觉得我应该有所行动,于是乎便有了“那些我所失去的东西”这个页面。

这是我想做的,也是唯一能做的。

就是把我被偷走的东西都记录下来,让我永远的不要忘记。

同时,我的朋友、同事们,大多听说了我的遭遇,都纷纷的过来安慰和开导我,并表示了同情。

我对此感到欣慰。

不过我还是要说的就是,我是真的很讨厌在我告诉他人我被偷了一辆车后,对方告诉我他曾经被偷了更多的车的这样一种境遇。

我不得不说,这真是这种可笑的逻辑。

我完全猜不透他的用意在哪?是一种妥协还是一种麻木不仁,还是其他的什么?

我要说的就是这些,除了自行车相关的,其余的我不想多说什么,也没什么说的。

流水帐

上周的某一天,具体是星期几记不起来了,接到了老刘的电话,他告诉我他已经回到上海了。看得出来,老刘的状态不错。

听他说,他之前回老家做手术,具体是什么原因,他也没有和我讲明。他请了一个月的长假回家调养。

不得不说,在没有老刘的日子里,还真是不太习惯。

不过现在好了,他又回来了。我想说,听到老朋友的声音,感觉真好~

本来,我们说好的,这周末去他那里玩的,不过因为这两天事情太多,只能推迟了。

在此,我也感到很抱歉。

上周末,按照我现在公司的轮休制度,我不用去上周六上午的半天班,故而抓紧时间在家里补觉。

不过,遗憾的是,即便如此,我还是没有能够睡好。

我在差不多9点半钟的时候,被公司打来的电话吵醒,一共打了差不多3、4个电话。

我记得很清楚。

第一个是问我会议室电脑的开机密码,囧~
第二个是问我上网的用户名、密码。
第三个是问我机房的数据库服务器问题。

我察,这都是些什么事~总之,在接完这些电话后,我毫无睡意了,也就起床了。

看了会奥运会的新闻后,中午我就去了父母那里。

中午的时候,我的朋友小Y打来电话,问我下午一起踢球咋样?我自然不会拒绝。

所以,在吃完午饭后,拿了家里的户口本、身份证、房产证,我就去了南翔。

之所以,要拿这些东西,是因为我们这边的有线电视要升级为数字电视了。

这确实是个好消息,并且还是免费的。我自然不会错过。

到了南翔,在办完数字电视升级登记后,领回了机顶盒。我就在家里等着小Y的到来了。

躺在床上看了会电视。

本来我还想顺便叫来我的另一个朋友小J的,他也很喜欢踢球的。

可是,他那天加班。

不一会儿,小Y来了。短暂的寒暄后,我们便出门了,带着我的足球。

本来,这会是一个美妙的下午。直到下雨了,还是暴雨。

也就是说,我们到了那边没一会,就变天了。真是操蛋~

在看到雨没有停下的势头,我们便回来了。

小Y在我那待了一会,直到傍晚的时候,才离开了。

本来我们说好了周日继续的,如果天气允许的话。

后来,因为有事也耽搁了。

周日,我基本就在父母那边了。

接下来就是无聊至极的上班生活,周一至周五。

周一好像没什么事情,唯一有点印象的就是那天我下班后被老板喷了。

事情是这样的,6点下班,我一直拖到了7点一刻。我看时间差不多了,就换衣服、收拾东西走人了。

结果,在回去的路上,接到了老板打开的电话,她在电话里大骂我没有专业精神,说我没有责任心,等等之类的。

反正,我是没怎么听清楚,只是一味的说“是、好的、知道了”这样的。

事后,人事经理还给我来了电话,告诉我说,作为公司的网管,下班走之前必须先请示领导。

卧槽,这是什么规矩。

不管怎么说,我还是回家了。去父母那边吃饭了,有什么事情明天再说。至少我是这么想的。

回南翔的路上,接到了老颜的短信。

他说能不能在我这临时住几天,我说我白天上班,家里没人。他说他不介意,我也就同意了。

第二天早上,在我上班之前,老颜来了,我们在地铁站碰面了,我把钥匙给了他,之后就去公司了。

周二,继续上班,继续开会,继续被催。实在是了无生气,没啥值得记录的。

值得一提的就是,傍晚在等待下班的时候,接到了我一个小学同学的电话,女的,已婚,未生育。

我们聊了很久,就当是消遣时间了。

周三,中午和同事出去的吃饭的时候,被告知说有同事要离职了,是和我同一批进来的。

这让我很是震惊。遗憾之余,有人提议晚上一起去唱歌,欢送一下。

我没有反对,晚上下班就留下来了。

那晚,我们玩的的很开心,除了两个当事人略显伤感。基本上我们那一批的人员都到齐了,还来了几个之前走掉的人。

一直到11点才结束,大家以一首Beyond的《海阔天空》作为结尾。那晚,我和另外一个女同事搭了那位离职的助理的车回的家,因为
1.顺路。
2.没地铁了。

路上我们聊了很多,具体内容我也记不上来。

在南翔匝道把我们放下来后,那位助理同事就继续赶往苏州了,那边有他的事业。

之后,我还颇有君子风范的送了那位女同事回家。

周四,公司里果然少了两个人,不过又多了两个人。总是这样,我不想过多讨论。

晚上老板破天荒的请吃饭,请了全体的新员工,包括我。据说前一天请了全体的老员工吃饭,现在轮到我们了。

于是乎,晚上下班了也没有走。

大家一起去了吃饭的地方,老板没来之前,闲聊。之后,老板来了,上菜吃饭。再后来,老板提前走了。留下我们一批员工在闲聊。总体还是很欢乐的。

差不多在8、9点的时候,大家都散了。

而我和我的那位女同事,则一起搭了另一位,同样住在南翔的老总的车回去了。路上,自然少不了闲聊。

不过我看彼此的状态、情绪都不是很好。我也不好过多提及。

不同的是,这次由于时间还早,那位一起搭车的女同事独自做公交回去了,我没有送她。

周五,本该是个开心的日子。因为明天就是双休日了。

但是,一想到明天,也就是周六的上午还要过来上半天班,我实在是高兴不起来。

这坑爹的轮休制度,是哪个白痴发明的?

我只记得周五那天,我开了很多的会,事情很杂、很多。以至于大多数我都没有记住。

我的老板让我给出一份公司的购物网站的计划表,我凭着还算丰富的从业经验保守的帮她把时间排到了9月中旬。

结果,她跟我说她等不了,最迟等我到9月底。

我认为她可能是疯了,要么就是什么都不懂。在我委婉的告诉她,“不可能”的时候,她决定把购物网站的计划先搁置下来。

我认为这也许是对的。

傍晚,我和两位女同事一起下班了。其中有一位是先前两次和我一起搭车的那位。

自从得知她和我住的很近之后,我们有些时候会选择“一起"。

回去的路上,和她聊了聊。我自认为我不是一个善于与异性交谈的人,所以我一直都在找话题,以免不必要的尴尬。

有些话题,我觉得还是可以的,比如工作、假期等。

本来,我还想以她的华为手机为突破口,和她谈谈智能手机的系统,和她貌似毫无兴趣。

她告诉我她明天也要去公司加班,而且可能是一整天。

之后,我便提前两站下车了,因为我接到了父母的电话,让我过去吃饭。

周六,骂骂咧咧的起床、去上班了。到了公司,人很少。

后来,老板也来了。还叫了我和几个同事过去谈事情。

无聊得很,直到快1点多的时候,我们才离开公司。因为之前老板一直都在公司,考虑到这一点,很多同事都不敢先走。

回到家,在外面吃了点饭。

之后就一边大扫除,一边等安装数字电视的人上门来。遗憾的是,直到我把整个房间打扫干净后,居然还是没有人来敲门。

我想估计今天是不会来了,于是又待了一会后,去了我父母那边。

晚上吃完饭回来,难得有时间,打开电脑,登了QQ,聊了会天,和小学同学们。期间,我的朋友小J还打来了电话,问了我一些手机的问题,之后还问我明天是否有空一起去踢球,我以没有时间为由婉拒了。

要知道,我确实是没有时间,我和他约了下周末。

周日,也就是今天。一觉睡到快10点。老刘的电话来了,让我去他那里玩。我哪有时间?要知道,我还得等安装数字电视的人呢~

起床、冲了个澡、刷完牙,人还没来。我便打了电话过去问。对方表示,我们小区的数字电视安装人员还没走,他们10点钟上班,让我过去联系他们。

得,我自己去问。

到了那边,说明了原因,确认了是因为人员不够导致的推迟。对方保证今天一定安装好。我简单的登记下,留了手机号码,便离开了。

回去后,我就躺在床上上网。

也不知道过了多久,门外有人敲门,原来是安装数字电视的人到了,终于来了~

安装过程只用了5分钟,这让我很是吃惊。步骤也很简单,就是接了个机顶盒而已,而那个盒子我早就拿回来了。

早知道,我就自己动手了,哪还等到现在?看来倒是我把事情想复杂了。

数字电视OK后,我也就准备出门,去我父母那边了。

要知道,我还没吃午饭呢。

大概12点半吧,我离开了家。之后的整个下午,我就在父母那边了,吃了午饭,看了几集《轩辕剑》,又睡了会午觉。

总体感觉还是不错的。

本来说好的,傍晚全家驱车前往我的二姨娘家里的,结果也不知怎的没去成。

吃完晚饭后,我便回南翔了。

打开电视机,正在直播英超第一轮,切尔西对维冈竞技,上半场。奥运会结束后,各大联赛也都纷纷开打了。

之后,也就有球看了。呵呵~

趁着中场休息的时候,冲了个澡。总体还是很惬意的。

一边看球,一边开始动手写篇日志。不紧不慢,想到哪写到哪,无拘无束。

我还是很享受这种过程的。

在我的这篇犹如裹脚布般的流水帐日志快要接近尾声的时候,切尔西对维冈竞技的比赛早已结束。

现在,进行的前英超冠军对阵南安普顿的比赛。

不得不说,比赛很精彩。

结束这篇日志,看完这场比赛,我也该睡觉了。

各位,晚安。

一日之内干掉两个光猫

中国电信,一直很坑爹,从未改变过。

随着上海市普遍推广的宽带升级计划,我和父母两地的电信2M/ADSL 都被升级至20M光纤了。价格嘛,倒也便宜,只是比原来的月租费多了9块钱而已。

本来这是一件足以让人兴奋的事情,因为特别对于我来说,终于可以不再忍受小水管了。

可是,紧接着问题来了。

光纤的坏处就是抛弃了传统的拨号上网,也就是说传统路由器被淘汰了。作为终端用户的我们,不需要再去关心ADSL的帐号、密码,要和PPPoE说再见了。

每台光纤的终端都变成了一个光猫(调制解调器和路由的集合体),它把客户端的一切都包办了,做到了真正的即插即用。

然而,也就是因为它的傻瓜,所以基本没有提供给用户什么可配置的地方。

这对于喜欢折腾的我来说,显然不是件好事。

由于我通常喜欢在自家的电脑上架设一些服务器,比如之前的传奇私服服务器等。所以必不可少的会用到端口映射,DMZ主机之类的功能,而这一切光猫均未开放给普通用户。

这件事,着实让我苦恼了一阵,后来我也淡忘了。

直到昨天,我意外的在网上看到一篇关于破解电信光猫的帖子,其中有一位网友的留言让我产生了些许想法。

他是这么说的,“目前市面上所有的光猫都可以被破解了。”,我觉得这是个信号。

由于昨天我在我父母那里,于是先从他们的光猫动手。

首先,使用电信提供的废品帐号"useradmin"登录光猫,查询光猫产品型号。这个,也可以在光猫的设备标签上找到。

得知我父母那边的光猫是"贝尔RG201O-CA"。

其实,通过搜索该设备名,找到了一篇标题为“电信光纤贝尔 RG201O-CA 路由一体光猫 1.6ES 版破解”的帖子。

根据帖子里提供的嗅探器,很快得到了光猫超级用户"telecomadmin" 的密码。

之后,使用该帐号、密码登录,即可以对光猫进行一些我想要的操作了,如mac 地址绑定之类的。

此外,根据他帖子所说的,我还下载了整个光猫的配置文件(http://192.168.1.1/backupsettings.conf),当然是在以telecomadmin 用户身份登录后。

这是一个标准的XML文件,里面可以看到很多的参数。有用户感兴趣的“所有设备连接数”。

我在修改了一些通用的参数后,顺便把默认的telecomadmin###### 的密码也改掉了。

之后,在它的配置上传页面(http://192.168.1.1/updatesettings.html),提交该文件。

果然,光猫重启后,包括密码在内的所有修改过的参数生效了。

这让我很兴奋,也更让我对我住处的光猫的破解充满了信心。

当晚,我回到了南翔家里,便马不停蹄的准备开始动手。

不过在我动手之前,我总想搞清楚一些事情。我是个好奇心很重的人。

我依旧在猜想白天在父母那边所用的那个嗅探器的工作原理,既然它不开源,那我只好用一些其他手段。

我下载安装了Wireshark,这是款开源的网络嗅探器。

我又重新下载了那款嗅探密码的小工具,白天用的那个。

我启动了wireshark,让它监听了网卡。之后,我运行了那个密码嗅探器。

之后,我得到了错误提示。如图:

这个我早就猜到了,因为工具还是那个工具,而光猫已经不是之前的那个光猫了。

这不是重点,关键是wireshark 的结果。如图:

就这?这让我有点不可思议。

可能这只是第一步吧,看来只有等下次去父母那边再测试了。

之后,我便开始捣鼓自己的光猫了。

首先,我查到了该光猫的型号是中兴F420。

通过搜索,我发现这款光猫非常普遍,而是破解的最为彻底的。

这位网友的留言给了我很大的启发:
http://bbs.et8.net/bbs/showpost.php?p=10917268&postcount=9

原来ZTE F420 还支持telnet 连接,这可是一个天大的好消息。

于是乎,我使用 root:root 的身份轻松登录了该款光猫,这简直就是一个微型的Unix-Like 操作系统啊~

还有shell,还有busybox,呵呵。

按照帖子里的提示,我在位于 /tmp 下的db_backup_cfg.xml 里找到了telecomadmin 的密码。

一切来的太容易了。下面是我的具体操作:

sharl@sharl-laptop:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
F420
Login: root
Password: 

BusyBox v1.01 (2011.08.24-05:26+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # help

Built-in commands:
-------------------
        . : break cd chdir continue eval exec exit export false hash
        help local pwd read readonly return set shift times trap true
        type ulimit umask unset wait [ ash awk brctl busybox cat cp date
        df echo egrep env fuser getty grep hexdump hostname ifconfig
        init insmod kill killall klogd linuxrc login ls lsmod mkdir mount
        ping ping6 ps reboot rm rmmod route sed sh test top traceroute
        umount wget

/ # 
/ # cd /tmp
/var/tmp # ls | grep cfg
db_backup_cfg.xml
/var/tmp # cat db_backup_cfg.xml | grep admin   






/var/tmp # exit
Connection closed by foreign host.

怎么样?是不是很简单,老实说我也没想到。

不过有的时候就是这样,事情远远没有你预想的那么复杂。

而我接下来要做的就是,慢慢的花点时间研究下这个嵌入式的微型机,姑且这么叫它吧。

要知道,我对小型机是很有兴趣的。我想现在,通过web 界面使用超级用户帐号管理光猫已经远远不能吸引我了。

比起shell,那只能是too simple.

至此,一日之内,两台光猫被拿下。