博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python批量扫描服务器指定端口状态
阅读量:4482 次
发布时间:2019-06-08

本文共 1575 字,大约阅读时间需要 5 分钟。

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

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

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

 

源码如下:

#!/usr/bin/env pythonimport sysimport timeimport socketdef 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:\programming\public\python\scan.log', 'ab')    for addr in ip_list:        host = (addr, int(port))        try:            s.connect(host)            f.write("Host %s:%s connection success. \n" % (host[0], host[1]))        except Exception, e:            f.write("Host %s:%s connection failure: %s. \n" % (host[0], host[1], e))    f.close()    s.close()    return Trueif __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)

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

转载于:https://www.cnblogs.com/XuHoo/p/5888528.html

你可能感兴趣的文章
jsp听课笔记(四)
查看>>
vim
查看>>
数组的键/值操作函数
查看>>
Android单点触控与多点触控切换的问题解决方案
查看>>
JS常用函数与方法
查看>>
十、Shell基础
查看>>
py16 面向对象深入
查看>>
CentOS 7 安装 Gitlab
查看>>
JavaScript-03-常见函数
查看>>
ajax 设置Access-Control-Allow-Origin实现跨域访问
查看>>
去掉ExpandableListView的箭头图标
查看>>
[LeetCode]Binary Tree Level Order Traversal II
查看>>
跨页面传值自动刷新 操作文本与文件夹
查看>>
最完美的毁尸灭迹:皮箱连环弃尸案始末
查看>>
002
查看>>
WCF服务“*”有零个应用程序(非基础结构)终结点。这可能是因为未找到应用程序的配置文件,或者在配置文件中未找到与服务名称匹配的服务元素,或者服务元素中未定义终结点。...
查看>>
cocos2d 读书随笔《cocos2d-x游戏开发技术精讲》
查看>>
Asterisk 代码架构概述
查看>>
中兴电信光纤猫F450获取管理员密码方法
查看>>
申请TexturePacker 或 PhysicsEditor free licenses
查看>>