Use PTT to track your friends' sleeping habits

00:02:08 不在站上 最近無新信件 23:18:21 123.195.xx.xx
08:26:11 閱讀文章 最近無新信件 08:22:36 111.70.xx.xx
09:00:14 閱讀文章 最近無新信件 08:54:48 111.70.xx.xx
10:36:14 不在站上 最近無新信件 08:54:48 111.70.xx.xx
14:04:11 閱讀文章 最近無新信件 13:58:08 140.136.xx.xx
14:47:15 閱讀文章 最近無新信件 14:44:02 140.136.xx.xx
15:31:08 不在站上 最近無新信件 14:44:02 140.136.xx.xx 
(隱藏部份資訊) 

上面的資訊是之前用 expect 為主體完成的練習題,自動登入 ptt、查詢某位網友的動態、上線時間、ip等資料,再進行資料整理的結果。

利用這些資料,進一步想知道這 ip 的來源,ip 是誰發放的,如果是學術網路的話,又是那一所學校呢?

要完成上述的事項,需要幾個功能。
1. 查詢 ip 發放單位
2. 學術網路各學校的ip分配

指令如下
catptt 1|awk -F ' ' '{print $5}'|sort|uniq|while read x; do  echo $x; whois $x; done

 whois 是自己寫的一個功能,可以查到發放單位及是學術網路的哪個學校的ip
catptt 也是自己寫的,用來顯示每天所收集的資料, 後面參數 1 指的是昨天的資料

以下是 linux 指令
awk: 用來切字串的工具 (好用、推)
(awk -F ' ' '{print $5}' 意思是用空白當切割符號,並印出第五個元素)

sort: 排序資料行

uniq:利用排序過的資料,將重複的資料去除

while read x; do echo $x;whois $x; done
針對每一資料行,顯示 ip 並做 whois 查詢

結果如下
111.70.xx.xx
中華電信股份有限公司

1.168.xx.xx
中華電信股份有限公司

123.195.xx.xx
凱擘股份有限公司

140.136.xx.xx
教育部 - 天主教輔仁大學
 

42.77.xx.xx
中華電信股份有限公司

reference: 學術網路各個學校的ip分配表 (個人覺得這表並非100%正確,請斟酌使用)

------

後記: 馬上掉漆...當初很多鄉民辛苦整理的學術網路學校 ip 分配表,在多年以前 (至少2011年以前) 就可以透過教育部提供的 TANet IP Whois 查得到了。

透過 Http Get 方式就可以取回資料,而且還是 UTF-8 的格式,連轉碼都不用了。

------
 8/1
最近看到一篇是利用 fb 網友動態查詢上下站時間,推估其睡眠時間的運用。
這跟我做得很雷同,有他鄉遇故知的感覺,只不過是ptt版罷了。

How you can use Facebook to track your friends’ sleeping habits

------
 8/2
來改個標題, Use PTT to track your friends' sleeping habits

 

留言

這個網誌中的熱門文章

[IIS] 自我簽署憑證來啟用SSL

相見恨晚的自動化測試開發工具 Sikuli

sqlplus 中文亂碼解決方案