安装nmap模块挺麻烦的,搞了半天

不仅要安装pip install nmap

还要sudo apt install nmap

给出代码,没有设多线程,有点慢,注意端口的类型转换,搞了很久

#!/usr/bin/env python
# -*- coding:UTF-8 -*-
import optparse
import nmap #usage:python scan.py -H 119.75.217.26 -p 3306 80 22 def nampScan(tgtHost,tgPort):
nmScan = nmap.PortScanner()
try:
result = nmScan.scan(tgtHost,str(tgPort))
state = result['scan'][tgtHost]['tcp'][int(tgPort)]['state']
service = result['scan'][tgtHost]['tcp'][int(tgPort)]['product']
version = result['scan'][tgtHost]['tcp'][int(tgPort)]['version']
print "[*]" + tgtHost + " tcp/" + str(tgPort) + " " + state + " " + service + " " + version
except:
pass def main():
parse = optparse.OptionParser('usage %prog -H <targethost> -p <targetport>')
parse.add_option('-H',dest = 'tgtHost',type = 'string',help = 'specify target host')
parse.add_option('-p',dest = 'tgtPort',type = 'int',help = 'specify target port')
(option,args) = parse.parse_args()
tgtHost = option.tgtHost
tgtPort = str(option.tgtPort)
args.append(tgtPort)
if(tgtHost == None)|(tgtPort == None):
print "[-]usage : python scan.py -H 192.168.2.3 -p 3306 80 22"
exit(0)
for tgport in args:
nampScan(tgtHost,tgport) if __name__ == '__main__':
main()

端口扫描器--利用python的nmap模块的更多相关文章

  1. 利用python 下paramiko模块无密码登录

    利用python 下paramiko模块无密码登录   上次我个大家介绍了利用paramiko这个模块,可以模拟ssh登陆远程服务器,并且可以返回执行的命令结果,这次给大家介绍下如何利用已经建立的密钥 ...

  2. python 利用python的subprocess模块执行外部命令,获取返回值

    有时执行dos命令需要保存返回值 需要导入库subprocess import subprocess p = subprocess.Popen('ping www.baidu.com', shell= ...

  3. python 使用nmap 模块

    官网 https://pypi.org/project/python-nmap/ >>> import nmap>>> nm = nmap.PortScannerS ...

  4. 端口扫描器--利用socket协议

    #!/usr/bin/env python # -*- coding:UTF-8 -*- import optparse import socket import threading # 用法 pyt ...

  5. 好使-利用python 下paramiko模块无密码登录

    [root@salt-minion02 paramiko]# vim baoleiji4.py # -*- coding:utf-8 -*-import paramikoprivate_key = p ...

  6. 记录一次利用 python 进行日志模块开发过程

    只记录大体思路和我认为其中需要记录的地方. 正则匹配 正则匹配的模式很难记忆,即使记住了,也很难写出无错误的匹配模式.但是,借助网上一些提供实时对比的网站,如 regexr.com. 代码示意: im ...

  7. Python脚本写端口扫描器(socket,python-nmap)

    目录 Socket模块编写 扫描给定主机是否开放了指定的端口 python-nmap模块编写 扫描给定ip或给定网段内指定端口是否开放 一个用python写的简单的端口扫描器,python环境为 3. ...

  8. Python开发端口扫描器

    首先是最常用的端口扫描器: 虽说有nmap等强大的工具,不过如果由于条件限制无法安装Nmap呢? 我这个脚本写的比较简单,默认扫描1-65535全部的端口 实际的话,可以根据需要自己修改脚本来实现定制 ...

  9. 利用python httplib模块 发送Post请求测试web服务是否正常起来!

    最近在学习python,恰好老大最近让我搞个基于post请求测试web服务是否正常启用的小监控,上网查了下资料,发现强大的Python恰好能够用上,所以自己现学现卖,顺便锻炼下自己. 由于本人也刚接触 ...

随机推荐

  1. 二叉堆&&左偏堆 代码实现

    今天打算学习左偏堆,可是想起来自己二叉堆都没有看懂,于是就跑去回顾二叉堆了.发现以前看不懂的二叉堆,今天看起来特简单,随手就写好了一个堆了. 简单的说一下我对二叉堆操作的理解.我不从底层函数说上去,相 ...

  2. 带你进入 Activiti 工作流的世界

    Activiti 是一个针对企业用户.开发人员 .系统管理员的轻量级工作流业务管理平台,其核心是使用 java 开发的快速 . 稳定的 BPMN2.0 流程引擎 .它可以与 spring 完美集成. ...

  3. 2018-5-28-win10-uwp-动态修改ListView元素布局

    title author date CreateTime categories win10 uwp 动态修改ListView元素布局 lindexi 2018-05-28 15:15:54 +0800 ...

  4. SuperSocket特点

    ²  简单易用,只需要几个类就能创建出健壮的Socket服务器端程序 ²  性能优良, 稳定可靠 ²  支持各种协议, 内置的协议解析工具让你把实现通信协议这种复杂的工作变得很简单 ²  自动支持SS ...

  5. "?:"在正则表达式中什么意思

    “?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用. 单独的“?”:匹配前面的子表达式零次或一次. 当“?”紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m}) ...

  6. [转]关于SSH与SSM的组成及其区别

    前言 当下SpringBoot盛行,咱再聊聊SpringBoot盛行之前的框架组合,当做复习巩固哈. 在聊之前,得先说说MVC,MVC全名是Model View Controller,是模型(mode ...

  7. java 集合之HashMap的三种遍历

    HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 这周我们只需记住三种遍历方法 1.通过keySet()获取键,再利用hashmap里面的.get(key)方法通过键获取 ...

  8. svn 删除、移动和改名

    删除.移动和改名 Subversion allows renaming and moving of files and folders. So there are menu entries for d ...

  9. 关于Spring JavaWeb工程中的ContextRefreshedEvent事件

    在应用启动时,通常想在此时预加载一些资源,全局使用. Spring会在操作应用上下文时,使用ApplicationEventPublisher触发相关ApplicationContextEvent,我 ...

  10. 2018-4-29-C#-将dll打包到程序中

    title author date CreateTime categories C# 将dll打包到程序中 lindexi 2018-04-29 09:43:22 +0800 2018-2-13 17 ...