zoukankan      html  css  js  c++  java
  • Python学习之扫描网段主机与开启端口(避坑)

    踩坑

            本来我的win10里没有安装nmap,我直接pip install python-nmap安装了python-nmap模块,导致的最终结果就是报错,没有nmap二进制文件。

            解决办法,去http://nmap.org/dist/下载nmap安装,在环境变量中添加安装nmap的路径(应该软件自动就给办了)。

            然后就正常了。

    编写端口扫描器

            扫描192.168.0.189的1-1000的开放情况。

    >>> import nmap //引入nmap模块

    >>> nm=nmap.PortScanner() //实例化

    >>> nm.scan('192.168.0.189','1-1000') //扫描192.168.0.189的1-1000端口

    >>> for host in nm.all_hosts(): //遍历主机

    ... print('-------------------------------------------')

    ... print('Host:%s(%s)'%(host,nm[host].hostname())) //主机名

    ... print('State:%s'%nm[host].state()) //主机状态

    ... for proto in nm[host].all_protocols(): //遍历协议

    ... print('-------------------------------------------')

    ... print('Protocol:%s'%proto) //输出协议类型

    ... lport=nm[host][proto].keys() //获取协议的所有扫描端口

    ... lport.sort() //端口列表排序

    ... for port in lport: //遍历端口及输出状态

    ... print('port:%s state:%s'%(port,nm[host][proto][port]['state']))

            命令行模式麻烦且不能纠错,因此写到e:// 1.py,然后cmd执行。(我试了试好像只能扫本机,别的好像要链接上才能扫)

    扫描网段有哪些机器

    import nmap

    nm=nmap.PortScanner()

    nm.scan(hosts='192.168.0.1/24',arguments='-sP') //ping主机在先扫描网段

    hosts_list=[(x,nm[x]['status']['state']) for x in nm.all_hosts()] //保存主机状态

    for host,status in hosts_list: //遍历主机名

        print(host+" is "+status) //输出主机名和状态

    异步扫描

    import nmap

    nma=nmap.PortScannerAsync() //支持异步扫描的函数

    def callback_result(host,scan_result): //新定义

        print '-------------------------------'

        print host,scan_result //输出主机名和扫描结果

    nma.scan(hosts='192.168.0.1/24',arguments='-sP',callback=callback_result)

            会返回扫描的结果。

  • 相关阅读:
    CopyOnWriteArrayList分析
    java锁和同步
    线程池原理
    Hadoop1的安装
    Hadoop2的HA安装(high availability):JournalNode+ zookeeper
    Hadoop2的HA安装(high availability):nfs+zookeeper
    Hadoop2的FN安装(federated namespace)
    Redis 基础知识
    mycat
    GitFlow及项目工作流程
  • 原文地址:https://www.cnblogs.com/sunny11/p/14141203.html
Copyright © 2011-2022 走看看