python端口扫描代码

237 0
Confused.Feint 2022-8-4 18:59:49 | 显示全部楼层 |阅读模式
from os import name
import threading
from socket import *
import tqdm  # 进度条,可自行加上


lock = threading.Lock()  # 确保 多个线程在共享资源的时候不会出现脏数据
openNum = 0  # 端口开放数量统计
threads = []  # 线程池


def portscanner(host, port):
    global openNum
    try:
        s = socket(AF_INET, SOCK_STREAM)
        s.connect((host, port))
        lock.acquire()
        openNum += 1
        print(f"{port} open")
        lock.release()
        s.close()
    except:
        pass


def main(ip, ports=range(65535)):  # 设置 端口缺省值0-65535
    setdefaulttimeout(1)
    for port in ports:
        t = threading.Thread(target=portscanner, args=(ip, port))
        threads.append(t)
        t.start()
    for t in threads:
        t.join()
    print(f"PortScan is Finish ,OpenNum is {openNum}")


if __name__ == '__main__':
    ip = input('input ip:')
    main(ip, [22, 101, 8080, 8000])          # 输入端口扫描
    main(ip)  # 全端口扫描
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Confused.Feint

初入联盟

关注
  • 5
    主题
  • 0
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行