日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Python中python-nmap模塊的使用介紹_python

作者:墨魚菜雞 ? 更新時間: 2022-04-27 編程語言

環(huán)境:?python 2.7.13

WindowsLinux默認(rèn)都是不安裝python-nmap的,我們得手動安裝

一、python-nmap的安裝

linux:

  • wge t http://xael.org/pages/python-nmap-0.6.1.tar.gz
  • tar ?-zxvf ?python-nmap-0.6.1.tar.gz
  • cd ?python-nmap-0.6.1
  • python setup.py install

Windows: ? pip ?install ?python-nmap

二、python-nmap模塊的使用

1.portScanner()類

portScanner()類用于實(shí)現(xiàn)對指定主機(jī)進(jìn)行端口掃描

nmScan=nmap.PortScanner() ?#實(shí)例化

scan( host , port , args ) 方法:以指定方式掃描指定主機(jī)或網(wǎng)段的指定端口

參數(shù):

  • host : 要掃描的主機(jī)或網(wǎng)段,可以是一個單獨(dú)的ip:192.168.10.10 ;也可以是一個小范圍網(wǎng)段:192.168.10.10-20 ;也可以是一個大網(wǎng)段:192.168.10.0/24
  • port : ? ?可選參數(shù),要掃描的端口,多個端口用逗號隔開,如:20,21,22,23,24
  • args :可選參數(shù),要掃描的方式
import nmap
nm = nmap.PortScanner()
nm.scan('192.168.10.10-100', '22,21','-sV')

也可以這樣:

nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')

command_line() 方法:返回的掃描方法映射到具體的nmap命令行,也就是我們上面執(zhí)行的nm.scan()命令,對應(yīng)的具體的nmap的命令

import nmap
nm = nmap.PortScanner()
nm.scan('192.168.10.10-100', '22,21','-sV')?
a=nm.command_line()
print(a)
###########################
nmap -oX - -p 20,21 -sV 192.168.125.134

scaninfo() 方法:返回nmap掃描信息,格式為字典類型

import nmap
nm = nmap.PortScanner()
nm.scan('192.168.10.10-100', '22,21','-sV')
a=nm.scaninfo()
print(a)
###########################
{'tcp': {'services': '20-21', 'method': 'syn'}}

all_hosts() 方法:返回nmap掃描的主機(jī)清單,格式為列表類型

import nmap
nm = nmap.PortScanner()
nm.scan('192.168.10.10-12', '22,21','-sV')
####################################################
['192.168.10.10','192.168.10.11','192.168.10.12']

查看掃描主機(jī)的詳細(xì)信息: nm['192.168.125.134']

import nmap
nm=nmap.PortScanner()
nm.scan('192.168.125.134','445')
a=nm['192.168.125.134'] ? ?#返回主機(jī)的詳細(xì)信息
print(a)
##################################
{'status': {'state': 'up', 'reason': 'arp-response'},?
'hostnames': [{'type': 'PTR', 'name': 'bogon'}],?
'vendor': {'00:0C:29:F6:2B:F0': 'VMware'},?
'addresses': {'mac': '00:0C:29:F6:2B:F0', 'ipv4': '192.168.125.134'},?
'tcp': {445: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}}

查看主機(jī)掃描的端口包含的協(xié)議(TCP/UDP):nmap['192.168.125.134'].all_protocols() ?返回列表型數(shù)據(jù)

import nmap
nm=nmap.PortScanner()
nm.scan('192.168.125.134','445')
a=nm['192.168.125.134'].all_protocols() ? ?#返回主機(jī)掃描的端口包含的協(xié)議
print(a)
##################################
['tcp']

查看掃描的端口哪些端口提供了TCP協(xié)議:nmap['192.168.125.134']['tcp']

import nmap
nm=nmap.PortScanner()
nm.scan('192.168.125.134','445')
a=nm['192.168.125.134']['tcp'] ? ? ? ?#返回主機(jī)掃描的端口哪些端口包含了TCP協(xié)議,返回具體信息
b=nm['192.168.125.134']['tcp'].keys() ?#只返還端口,返回列表型數(shù)據(jù)
print(a)
print(b)
##################################
{445: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}
[445]

查看該端口是否提供了TCP協(xié)議:nmap['192.168.125.134'].has_tcp(445) ,返回布爾類型的數(shù)據(jù)

import nmap
nm=nmap.PortScanner()
nm.scan('192.168.125.134','445')
a=nm['192.168.125.134'].has_tcp(445) ? ? ? ?#判斷該端口是否提供TCP協(xié)議
print(a)
##################################
True

查看該協(xié)議下端口的狀態(tài):nmap['192.168.125.134']['tcp'][445][state]

import nmap
nm=nmap.PortScanner()
nm.scan('192.168.125.134','445')
a=nm['192.168.125.134']['tcp'][445]['state']
print(a)
##################################
open

原文鏈接:https://www.cnblogs.com/csnd/p/11807823.html

欄目分類
最近更新