用到了python-nmap模块和optparse模块,optparse为命令行读取模块
代码如下:
import optparse
import nmap
def nmapScan(Host,Port):
nmScan=nmap.PortScanner()
results=nmScan.scan(Host,Port)
state=results['scan'][Host]['tcp'][int(Port)]['state']
if state=="open":
print("[*]"+Host+"tcp/"+Port+""+state)
def main():
parser=optparse.OptionParser(description='端口扫描器-nmap')
parser.add_option('-H',dest='Host',type='string',help='输入主机ip')
parser.add_option('-P',dest='Port',type='string',help='输入端口')
parser.add_option('-p',dest='pPort',type='int',help='Port端口')
(options,args)=parser.parse_args()
Host=options.Host
Port=options.Port
pPort=options.pPort
args.append(Port)
if (Host==None)|(Port==None):
print("输入目标ip和端口")
exit(0)
for tgport in range(int(Port),pPort+1):
# print(tgport)
nmapScan(Host,str(tgport))
if __name__=='__main__':
main()