zoukankan      html  css  js  c++  java
  • Python批量扫描服务器指定端口状态

    闲来无事用Python写了一个简陋的端口扫描脚本,其简单的逻辑如下:

    1. python DetectHostPort.py iplist.txt(存放着需要扫描的IP地址列表的文本,每行一个地址)

    2. 输入指定的扫描端口,扫描后完成后将生成日志文件。

    源码如下:

    #!/usr/bin/env python
    
    import sys
    import time
    import socket
    
    
    def getaddresslist(addr):
        """
        getaddresslist(addr) -> IP address file
    
        IP address read from the file.
        """
        try:
            with open(addr, "r") as ip_list:
                lines = ip_list.readlines()
                address = [line.strip() for line in lines]
            return address
        except (IOError, IndexError), e:
            return str(e)
    
    
    def scan(ip_list, port):
        """
        scan() -> getaddresslist()
    
        getaddresslist() function returns the IP address of the list.
        """
        if not isinstance(ip_list, list):
            sys.exit("Function getaddresslist() return error message: %s" % ip_list)
    
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)
        f = open('E:programmingpublicpythonscan.log', 'ab')
        for addr in ip_list:
            host = (addr, int(port))
            try:
                s.connect(host)
                f.write("Host %s:%s connection success. 
    " % (host[0], host[1]))
            except Exception, e:
                f.write("Host %s:%s connection failure: %s. 
    " % (host[0], host[1], e))
        f.close()
        s.close()
        return True
    
    
    if __name__ == '__main__':
    
        addrs = sys.argv[1]
        isNone = True
        while isNone:
            scanport = raw_input("Enter the scan port: ")
            if scanport:
                isNone = False
            else:
                continue
        scan(getaddresslist(addrs), scanport)

    运行时只能扫描一个端口,但是可以对代码进行修改,扩展为扫描多个端口。

  • 相关阅读:
    JS设置CSS样式的几种方式
    jquery基础
    JS里面的两种运动函数
    JavaScript必须了解的知识点总结。
    JavaScript调用函数的方法
    纯CSS完成tab实现5种不同切换对应内容效果
    Web设计师值得收藏的10个jQuery特效
    jQuery的.bind()、.live()和.delegate()之间区别
    Web前端:11个让你代码整洁的原则
    js函数中参数的传递
  • 原文地址:https://www.cnblogs.com/XuHoo/p/5888528.html
Copyright © 2011-2022 走看看