一.前言
1.关于本人
本人仍然还在学习阶段,有问题欢迎大佬指正,希望我的文章能够帮助到你.以后我很多东西都会在博客更新,和大家一起进步,加油.
2.主题介绍
本次博客主要是开发一个端口扫描工具,用python语言,要求要能指定ip,指定c段,指定端口号和端口范围,还有多线程或者线程池实现,提高端口扫描效率.最重要的是掌握一些python的知识点,一些思路和提高python编程能力.
3.涉及的知识点
- argparse模块:python用于解析命令行参数和选项的标准模块
- os模块:python中执行cmd命令
- ping命令参数
- ThreadPoolExecutor模块:提高效率
- socket编程:端口扫描的核心代码
- 列表字符串等基础知识
- c段扫描
二.程序代码与结果
1.核心代码:
import os
import socket
import sys
import argparse
import time
from threading import Thread
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
#端口扫描
def scan(ip,port):
try:
#for port in range(1, 65536):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((