【python】批量扫描IP地址80/8080端口

本文介绍了一个使用Python编写的端口扫描工具,该工具能够针对指定的IP地址范围进行端口扫描,并将结果输出到TXT文件及命令行窗口。文章提供了完整的源代码,并指导如何在命令行环境下运行此工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要是在实习当中用到的IP端口扫描的一个操作,python语言,输出到txt文档中,同时显示在dos输出窗口上。

代码:

文件名:port_scan.py

#!/usr/bin/env python

import socket

def check_port(address,port):
    s=socket.socket()
    try:
        s.connect((address,port))
        return True
    except socket.error,e:
        return False

def check_server(address, start_port, end_port):
    port = start_port
    while(port<=end_port):
        check = check_port(address, port)
        if (check):
            f1.write('Server %s Port %d is on' % (address, port)+"\n")
            print 'Server %s Port %d is on' % (address, port)
        port=port+1

if __name__=='__main__':
    f1 = open("C:\Users\Administrator\Desktop\saomiao/xxx.txt", "a")
    from optparse import OptionParser
    parser=OptionParser()
    parser.add_option("-a","--address",dest="address",default='localhost',help="Address for server",metavar="ADDRESS")
    parser.add_option("-f","--file",dest="file",default='',help="Address list",metavar="LIST")
    parser.add_option("-s","--start",dest="start_port",type="int",default=80,help="start port",metavar="SPORT")
    parser.add_option("-e","--end",dest="end_port",type="int",default=80,help="end port",metavar="EPORT")
    (options,args)=parser.parse_args()
    print 'options: %s, args: %s' % (options, args)
    port=options.start_port
    if (options.file == ''):
		check_server(options.address, options.start_port, options.end_port)
    else:
		f = open(options.file,'r')  
		currentServer = f.readline().strip()
		while(currentServer):
			#print 'server %s' % currentServer
			check_server(currentServer, options.start_port, options.end_port)
			currentServer = f.readline().strip()
		f.close()
    f1.close()
	
代码注意事项:1.写入的那个txt文件前面是/而不是\不然容易当成转义字符

使用方法:

1.dos中进入port_scan.py路径,用cd(空格)路径名称

2.输入命令python port_scan.py -f ip.txt        (ip.txt是你需要扫描的ip清单)

3.静静等待就可以了,会显示出开放的端口,如扫8080,只要把上面的80都改成8080即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值