欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python編寫一個簡單的端口掃描器

 更新時間:2022年04月08日 10:28:20   作者:somenzz  
端口掃描是非常實用的,不止用在信息安全方面,日常的運維也用得到。本文將利用Python編寫一個簡單的端口掃描器,需要的可以參考一下

端口掃描是非常實用的,不止用在信息安全方面,日常的運維也用得到。這方面的工具也不要太多,搞過 CTF 的朋友會告訴你有多少端口掃描工具,那為什么還要用 Python 再自己實現(xiàn)一遍?這個問題就像飯店里的菜已經(jīng)很好吃了,為什么還要自己燒菜一樣,主要還是為了適合自己的口味,添加自己需要的個性功能。

今天我們將用 20 行代碼編寫一個簡單的端口掃描器。讓我們開始吧!

1、需要的庫

都是標(biāo)準(zhǔn)庫,因此內(nèi)網(wǎng)環(huán)境也不影響:

import?socket
import?argparse
import?sys
import?time

套接字庫是一個低級網(wǎng)絡(luò)接口庫,它允許我們在腳本中創(chuàng)建網(wǎng)絡(luò)連接。argparse 庫用于解釋傳遞給我們腳本的參數(shù)。sys 庫允許我們與系統(tǒng)交互。最后,time 庫用來統(tǒng)計耗時。

2、獲取一個 host 地址

parser?=?argparse.ArgumentParser()
parser.add_argument('host')
args?=?parser.parse_args()

這樣腳本在運行的時候,第一個參數(shù)就可以傳入一個主機名或 ip 地址,下文就可以通過 args.host 來使用。

3、循環(huán)所有的端口

端口占用 2 個字節(jié),因此其范圍是 1-65535

start?=?time.time()
try:
????for?port?in?range(1,?65536):
????????sock?=?socket.socket(socket.AF_INET,?socket.SOCK_STREAM)
????????sock.settimeout(1)
????????result?=?sock.connect_ex((args.host,?port))
????????if?result?==?0:
????????????print("Port:?{}?Open".format(port))
????????sock.close()
except?KeyboardInterrupt:
????sys.exit()
end?=?time.time()

如果 sock.connect_ex 返回了 0 說明端口開放,為了讓程序正常退出,我們加上 try except 來捕獲鍵盤發(fā)起的中斷。

4、完整腳本

一旦 for 循環(huán)完成并掃描了所有端口,我們將獲取時間并打印出腳本運行的時間:

import?socket
import?argparse
import?sys
import?time

parser?=?argparse.ArgumentParser()
parser.add_argument('host')
args?=?parser.parse_args()
start?=?time.time()

try:
????for?port?in?range(1,?65536):
????????sock?=?socket.socket(socket.AF_INET,?socket.SOCK_STREAM)
????????sock.settimeout(1)
????????result?=?sock.connect_ex((args.host,?port))
????????if?result?==?0:
????????????print("Port:?{}?Open".format(port))
????????sock.close()
except?KeyboardInterrupt:
????sys.exit()

end?=?time.time()
print(f"Scanning?completed?in:?{end-start:.3f}s")

除去空行,代碼一共 20 行,運行效果如下:

到此這篇關(guān)于基于Python編寫一個簡單的端口掃描器的文章就介紹到這了,更多相關(guān)Python端口掃描器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python天氣預(yù)報采集器實現(xiàn)代碼(網(wǎng)頁爬蟲)

    Python天氣預(yù)報采集器實現(xiàn)代碼(網(wǎng)頁爬蟲)

    這個天氣預(yù)報采集是從中國天氣網(wǎng)提取廣東省內(nèi)主要城市的天氣并回顯。本來是打算采集騰訊天氣的,但是貌似它的數(shù)據(jù)是用js寫上去還是什么的,得到的html文本中不包含數(shù)據(jù),所以就算了
    2012-10-10
  • python格式化輸出%s與format()的用法對比

    python格式化輸出%s與format()的用法對比

    這篇文章主要為大家介紹了python格式化輸出%s與format()的用法對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • 使用Python自動生成HTML的方法示例

    使用Python自動生成HTML的方法示例

    這篇文章主要介紹了使用Python自動生成HTML的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python3中str(字符串)的使用教程

    python3中str(字符串)的使用教程

    這篇文章主要介紹了python3中str(字符串)的使用教程,文中介紹的非常詳細(xì),對python3中各種str字符串的操作都包含這篇文章中了,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-03-03
  • 使用python編寫android截屏腳本雙擊運行即可

    使用python編寫android截屏腳本雙擊運行即可

    使用python編寫一個截屏的腳本,雙擊運行腳本就OK,截屏成功后會將截屏文件已當(dāng)前時間命名,并保存在存放腳本的當(dāng)前路徑的screenshot文件夾下
    2014-07-07
  • 如何從csv文件構(gòu)建Tensorflow的數(shù)據(jù)集

    如何從csv文件構(gòu)建Tensorflow的數(shù)據(jù)集

    這篇文章主要介紹了如何從csv文件構(gòu)建Tensorflow的數(shù)據(jù)集,幫助大家更好的理解和使用Tensorflow,感興趣的朋友可以了解下
    2020-09-09
  • OpenCV2從攝像頭獲取幀并寫入視頻文件的方法

    OpenCV2從攝像頭獲取幀并寫入視頻文件的方法

    今天小編就為大家分享一篇OpenCV2從攝像頭獲取幀并寫入視頻文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Jupyter Notebook 實現(xiàn)正常顯示中文和負(fù)號

    Jupyter Notebook 實現(xiàn)正常顯示中文和負(fù)號

    這篇文章主要介紹了Jupyter Notebook 實現(xiàn)正常顯示中文和負(fù)號,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python畫圖工具Matplotlib庫常用命令簡述

    Python畫圖工具Matplotlib庫常用命令簡述

    這篇文章主要介紹了Python畫圖Matplotlib庫常用命令簡述總結(jié),文中包含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python中處理字符串之islower()方法的使用簡介

    Python中處理字符串之islower()方法的使用簡介

    這篇文章主要介紹了Python中處理字符串之islower()方法的使用,是Python入門的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05

最新評論