Installing the Nmap module:
Pip Install Python_nma
Nmap Module Description:
Python-nmap is a Python library that helps to use the Nmap port scanner. It allows easy manipulation of NMAP scan results and will be a perfect choice for tools and reports from system administrators who need to automate the scanning task. It also supports Nmap script output.
Nmap Module class:
Et:python's lightweight XML support
Portscanner: Port Scan
Portscannerasync: Port scan is asynchronous
Portscannererror:nmap Class of Exception errors
Portscannerhostdict: Special small class for storing and accessing host scan results
Portscanneryield: Using Nmap in Python through the generator
Process: Represents an activity that runs in a separate process, which is supposed to control the scanning process.
Convert_nmap_output_to_encoding: Encoding
Csv:csv Operation Module
Io:
Nmap:
Os
Re
Shlex:
Subprocess:
Sys
See the general meaning, we are here mainly with Portscanner, Portscannererror, portscannerhostdict these three classes
Portscanner: Normal port Scan class
Initialize the Portscanner class, first look at the module's __init__ constructor description.
The detection system and NMAP on the nmap version may cause portscannererror exceptions if Nmap is not found in the path
__init__ (Self, nmap_search_path= (' Nmap ', '/usr/bin/nmap ', '/usr/local/bin/nmap ', '/sw/bin/nmap ', '/opt/local/bin/ Nmap '))
If you call the Portscanner module exception, it may be that the Nmap_search_path default path does not find your installed Nmap executable file, you need to manually modify the default value of this parameter.
The methods in this class illustrate:
all_hosts (): Returns the sorted list of all hosts Analyse_nmap_xml_scan (Nmap_xml_output=none, nmap_err= ", nmap_err_keep_trace=", nmap_warn_keep_trace= "): Analysis Nmap xml Scan output param Nmap_xml_output: XML string to parse Command_line (): Returns the command line for scanning CSV (): Returns the CSV output as text get_nmap_last_output () : Returns the last text output of Nmap with original text Has_host (host): Returns TRUE if the host has a result, otherwise returns Falselistscan (hosts= ' 127.0.0.1 '): Do not scan, But explain the target host and return a list of hosts Nmap_version (): If it detects a return nmap version of scan (hosts= ' 127.0.0.1 ', ports=none, arguments= '-sv ', sudo=false): Scan the specified host if Nmap output is not XML, Portscannererror exception may be thrown by the hosts: IP or IP segment to be scanned ports: parameter string for scanned port Arguments:nmap '-su -sx - SC ' sudo: whether to use sudo to start nmapscaninfo (): Return scaninfo structure {' TCP ': {' services ': ', ' method ': ' Connect '}}scanstats (): Return scanstats structure {' uphosts ': ' 3 ', ' timestr ': ' thu jun 3 21:45:07 2010 ', ' downhosts ': ' 253 ', ' totalhosts ', ': ' ', ', ' 5.79 ' elapsed '
Example Demo:
>>> nm = nmap. Portscanner () #实例化普通端口扫描对象nm >>> nm.nmap_version () #看看当前系统nmap版本 (7, 70) # The current version is Nmap7.7>>> date = nm.scan (' 127.0.0.1 ', ' $ ', '-SV ') #进行扫描, will pop up the Nmap cmd window, Will wait for the scan to end and return the scan results in JSON format date{' nmap ': {' command_line ': ' nmap -ox - -p 22 - sv 127.0.0.1 ', ' scaninfo ': {' tcp ': {' method ': ' syn ', ' services ': ' 22 '}, ' scanstats ': {' timestr ': ' fri apr 13 10:43:29 2018 ', ' elapsed ': ' 8.71 ', ' uphosts ': ' 1 ', ' downhosts ': ' 0 ', ' totalhosts ': ' 1 '}}, ' scan ': {' 127.0.0.1 ': {' hostnames ': [{' name ': ' ', ' type ': ' '}], ' addresses ': {' IPv4 ': ' 127.0.0.1 '}, ' Vendor ': {}, ' status ': {' state ': ' up ', ' reason ': ' localhost-response '}, ' tcp ': {22: {' state ': ' open ', ' reason ': ' Syn-ack ', ' name ': ' ssh ', ' product ': ' microsoft windows iot sshd ', ' Version ': ' 1.100 ', ' extrainfo ': ' protocol 2.0 ', ' conf ': ' to ', ' of ' the CPE ': ' Cpe:/o:microsoft:windows_10:::iot_core '}}}}}>>> nm.all_hosts () [' 127.0.0.1 ']>>> Nm.command_line () ' nmap -ox - -p 22 -sv 127.0.0.1 ' >>> nm.csv () ' Host ; hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe\r\n127.0.0.1;;; Tcp;22;ssh;open; Microsoft windows iot sshd;protocol 2.0;syn-ack;1.100;10;cpe:/o:microsoft:windows_10:::iot _core\r\n ' >>> nm.get_nmap_last_output () ' <?xml version= "1.0" encoding= "UTF-8"? >\r \n<! Doctype nmaprun>\r\n<?xml-stylesheet href= "file:///d:/program files (x86)/Nmap/ Nmap.xsl " type=" text/xsl "?>\r\n<!-- nmap 7.70 scan initiated fri apr& Nbsp;13 10:43:20 2018 as: nmap -ox - -p 22 -sv 127.0.0.1 -->\r\n<nmaprun scanner= "Nmap" args= "nmap -ox - -p 22 -sv 127.0.0.1 " start=" 1523587400 " startstr=" fri apr 13 10:43:20 2018 " version=" 7.70 " xmloutputversion=" 1.04 ">\r\n<scaninfo type=" SYN " protocol=" TCP " numservices=" 1 " services=" "/>\r\n<verbose level=" 0 "/>\r\n<debugging level=" 0 "/>\r\n
Portscannerhostdict Class Description:
The methods in this class illustrate:
ALL_IP (): Returns the IP Port list all_protocols (): Returns a list of all scan protocols >>> nm[' 127.0.0.1 '].all_protocols () [' TCP ']ALL_SCTP () : Return SCTP Port List all_tcp (): Return TCP port list >>> nm[' 127.0.0.1 '].all_tcp () [22]all_udp (): Return UDP port list has_ip (port): Returns true if the IP port has info, otherwise returns FALSEHAS_SCTP (port): True if the SCTP port has info, otherwise falsehas_tcp (port): Returns True if the TCP port has info Otherwise return FALSEHAS_UDP (port): Returns TRUE if the UDP port has info, otherwise returns FALSEHOSTNAME (): Returns the first hostname of a user record or List hostnames (): Returns the host list IP (port) : Return information for IP Port SCTP (port): Return information for SCTP Port State (): Return host status TCP (port): Return TCP port information >>> nm[' 127.0.0.1 '].state () ' Up ' UDP ( PORT): Returns the UDP port information uptime (): Returns the host status
Python Module Learning----nmap module