程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python編程--使用NMAP端口掃描

編輯:Python

Python編程–使用NMAP端口掃描

安裝好Python-Namp模塊,(pip install python-nmap)。創建一個PortScanner()類對象,這使我們能用這個對象完成掃描操作。PortScanner類有一個scan()函數,它可將目標和端口的列表作為參數輸入,並對它們進行基本的Nmap掃描。另外,還可以把目標主機的地址/端口放入數組中備查,並打印出端口的狀態。示例代碼如下:

# 導入模塊
import nmap
import optparse
# 定義nmapScan函數,參數為目標主機和目標端口
def nmapScan(tgtHost, tgtPort):
# 實例化nmap端口掃描對象
nmScan = nmap.PortScanner()
# 執行scan()函數
nmScan.scan(tgtHost, tgtPort)
# 獲取tcp協議對應的端口狀態
state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
print(f"[+] {
tgtHost} tcp/{
tgtPort} {
state}")
# 定義主函數
def main():
# 實例化語法對象
parser = optparse.OptionParser('Usage %prog -H <target host> -p <target port>')
# 添加—H, -p參數選項,定義變量名和類型,還有幫助說明
parser.add_option('-H', dest = 'tgtHost', type = 'string', help = 'specify target host')
parser.add_option('-p', dest = 'tgtPort', type = 'string', help = 'specify target port')
# 生成語法參數元組
(options, args) = parser.parse_args()
tgtHost = options.tgtHost
tgtPorts = str(options.tgtPort).split(', ')
if tgtHost == None or tgtPorts[0] == None:
print(parser.usage)
exit(0)
for tgtPort in tgtPorts:
nmapScan(tgtHost, tgtPort)
if __name__ == '__main__':
main()

執行這個腳本,運行結果如下圖:


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved