Python批量扫描服务器指定端口状态
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:31
闲来无事用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:\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 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)
运行时只能扫描一个端口,但是可以对代码进行修改,扩展为扫描多个端口。
- 上一篇: python批量上传文件到七牛云
- 下一篇: python批量处理excel文件数据
相关文章
-
python批量上传文件到七牛云
python批量上传文件到七牛云
- 互联网
- 2026年04月04日
-
python求n的多次方
python求n的多次方
- 互联网
- 2026年04月04日
-
python如何调用飞书机器人
python如何调用飞书机器人
- 互联网
- 2026年04月04日
-
python批量处理excel文件数据
python批量处理excel文件数据
- 互联网
- 2026年04月04日
-
python判断columns在第几列
python判断columns在第几列
- 互联网
- 2026年04月04日
-
python爬虫遇到会话存储sessionStorage
python爬虫遇到会话存储sessionStorage
- 互联网
- 2026年04月04日





