回覆列表
  • 1 # shawn25

    首先當然可以程式設計實現,任何語言都行,這個就不多說了。具體問題具體分析。

    如果在linux下還有不透過程式設計實現的方法,編寫shell指令碼。

    可以利用linux下的軟體來訪問對方介面,比如nc,如果是http介面,可以用curl。

    然後用grep抓想要的資訊,做判斷後輸出。

    最後用crontab新增定時任務,反覆執行指令碼就可以檢測了。

  • 2 # 產品經理老胡

    老胡的看法

    Linux環境下監聽第三方服務介面的方案老胡有兩個,一個是使用命令列工具ngrep,另一個是帶有GUI圖形化介面的wireshark。ngrep可以基於正則表示式監聽並過濾某IP、某埠或者某網路介面的資料包;wireshark是老牌的網路抓包工具,喜歡網路實驗的朋友應該都不會陌生。

    使用ngrep監聽特定埠

    在絕大多數Linux發行版上,ngrep並不是預設安裝的,不過ngrep已經包含在ubuntu、CentOS等Linux發行版的軟體源中,可以直接透過包管理器下載安裝。Linux下,ngrep需要root許可權才能夠監聽第三方的埠。在這裡我們用到的ngrep命令選項有這樣幾個:

    -d:指定要監聽的網路介面,any表示所有網路介面

    port:指定要監聽的第三方埠號

    比如,監聽埠10808上所有的資料:

    sudo ngrep -d any port 10808

    再比如過濾出189.cn與本機通訊的內容中的包含jpg圖片的資料包:

    sudo ngrep -d any -W byline -N -q \.jpg host 189.cn

    這樣就捕捉到了jpg圖片的相對路徑。

    更多玩法,使用man ngrep檢視詳細的資訊。

    使用wireshark監聽特定埠

    Linux下的wireshark和windows下的版本基本相同,使用起來也比較簡單,和ngrep一樣,監聽第三方埠需要使用root許可權來執行wireshark。同樣,預設Linux的各大發行版不預裝wireshark,需要從軟體源安裝,或者下載安裝包使用安裝包安裝。

    執行wireshark之後,選擇網路介面:

    之後就進入抓包介面了:

    在應用顯示過濾器的輸入框裡,輸入tcp.port==埠號,就可以針對某埠進行過濾,檢視該埠傳送接收的資料了。如果是針對UDP協議的話,就改成udp.port==埠號。

    更多用法,請參考wireshark的使用說明。

    總結一下,Linux下監聽第三方的埠資料通訊需要使用root許可權,命令列的工具可以使用ngrep,圖形化的工具有wireshark。這兩個工具都可以滿足抓取埠資料的需求,ngrep更加小巧一點,並且可以根據正則表示式來實現對資料包內容的過濾。不過對於一些加密協議,抓取到的資料包是無法解析出內容的,這一點需要明確。

  • 中秋節和大豐收的關聯?
  • “擋婚大使”蔡依林是如何將小個子穿出大氣場的?