如何利用python掃描某個網段內活動的主機以及某個主機開放的埠?

Jamal123


這個實現起來不難,對於主機,主要是ping對方的ip,如果有回覆,則證明這個主機是活動的,如果沒有回覆,則說明這個主機當前沒在線;對於端口,主要是創建socket套接字,通過socket連接對方的ip和端口號,如果可以連接上,則證明對方開啟了這個端口,如果連接失敗,則證明對方沒有開啟對應端口,下面我大概介紹一下實現過程,實驗環境win10+python3.6+pycharm5.0,主要內容如下:

  • 掃描某個網段內活動的主機,這裡主要是ping對方,如果回覆的TTL>=0,說明對方主機是活動的,主要代碼如下,主要是3個函數,get_os函數獲取當前主機類型,ping_ip函數主要用於ping對方的ip,find_ip函數主要用於生成對應網段內的ip,這裡為了加快速度,開啟了多個線程,主要代碼如下(由於代碼量較多,截取了3張圖片):

程序運行截圖如下,已經成功打印出對應網段內活動的主機ip:

  • 掃描某個主機開放的端口,這裡主要是創建socket,連接對方ip和對應的端口,如果可以連接成功,則證明這個端口開放,否則,沒有開放,這裡掃描了1-65535的所有端口,主要代碼如下:

程序運行截圖如下:

至此,我們就完成了利用python掃描某個網段內活動的主機和某個主機開放的端口。總的來說,原理很簡單,梳理一下思路,整理一下代碼,很快就能實現,網上也有相關教程,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧。


分享到:


相關文章: