2009-04-15 38 views
1

我寫了一個小腳本,每當我打開一個新的終端窗口並將它添加到當前時間,並將其添加到文本文件中時,它就會收集我的外部IP地址。我正在尋找想法,以便可視化我的IP地址何時/多久更改一次。我在家中和校園之間跳動,並可以使用腳本將它們分開,但是單獨對它們進行可視化會很好。如何在python中更改IP地址時可視化?

我經常使用matplotlib。有任何想法嗎?

回答

4

將您的IP繪製爲the xkcd internet map(或某些放大的地圖子集,以更好地顯示不同但緊密相鄰的IP)上的點。

將每個「堆積」點繪製成與您擁有該IP的頻率成比例,並對IP進行着色以使最近的點更亮,最近的點更加黑暗。

+0

我想知道這是否可能爲幾個不同的IP地址集。對於我在城鎮周圍獲得的各種動態IP有不同的情節。 – physicsmichael 2009-04-15 03:56:52

0

在matplotlib用戶指南中有關於圖表上的繪圖條來表示範圍的章節。我從來沒有這樣做過,但它看起來適合你在找什麼。

0

假設你指定了終端,我假設你在UNIX變體系統上。使用-f開關和命令行實用程序尾部可以讓您不斷監視文件的結尾。你也可以使用像IBM的inotify這樣的程序,它可以監視文件變更或者將dnotify(並將文件放置在它自己的目錄中),這在大多數發行版上通常是標準的(然後你可以調用tail -n 1來獲得最後一行)。一旦線條發生變化,您可以使用Python的time.time()獲取自epoch以來的當前系統時間,並從最後一次更改的時間中減去該時間,然後使用matplotlib繪製該差異。我假設你可以將時間 分類到範圍中,以使自己的繪圖更容易。 1小時更換間隔小於1小時,另一小時更換1至5小時,等等。

如果你不想直接使用它,有一個尾部-f的Python實現,位於here。在檢測到文件發生變化時,您可以執行上述操作。

1

「何時」是一維時間數據,這在時間軸上很好地顯示。在更大的時間尺度上,你可能會失去細節,但大多數情況下,「什麼時候」都會有這種缺陷。

對於「多長時間一次」,標準的二維(時間)與頻率(每天/每週/每月分爲桶)的時間曲線圖將是一個標準方法。移動平均線也可能是信息性的。

您可以將時間軸&條形圖與縮小時縮放頻率顯示時可見的時間軸組合在一起。

水平軸上的時間條形圖如何,其中每個條形的寬度是計算機持有特定IP地址的時間長度,每個條形的高度與寬度成反比?這也將給出一個時間與多少時間的情節圖。

您也可以將數據解釋爲pulse density modulated信號,就像您在SuperAudio CD上獲得的信號一樣。你可以繪製這個圖表,甚至可以收聽數據。由於IP變化事件沒有明顯的時間長度,因此脈衝的長度將是可調參數。沿着類似的路線,您可以將數據視爲方波(三角波,鋸齒& c),其中每個IP更改事件都是一個電平轉換。聽起來很有趣Pure Data項目。