首页 > 编程语言 >Python实现端口扫描

Python实现端口扫描

时间:2023-11-15 20:33:05浏览次数:33  
标签:socket scan 端口扫描 port Python host 线程 open 实现

实验环境

攻击主机IP:172.18.53.145
目标主机IP:172.18.53.28

脚本编写

思路:遍历连接目标的所有端口,如果连接成功说明该端口开放,为了提升效率,使用多线程执行
代码实现如下:

import threadpool
import socket

ip = input("Enter the ip address you want to scan: ")
print("start port scan...")

def scanner(host, port):
    # 尝试连接指定端口,连接成功说明该端口开放
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((host, port))
        print(str(port), "is open")
    except:
        pass

host_port = []
# 需要遍历的端口数
port_range = 65536
for port in range(port_range):
    host_port.append(([ip,port],None))

# 创建线程池,50指50个线程
pool = threadpool.ThreadPool(50)
# 指定线程池执行的任务
tasks = threadpool.makeRequests(scanner, host_port)	
# 将要执行的任务放入线程池中
[pool.putRequest(req) for req in tasks]	
# 等待所有子线程执行完毕后退出
pool.wait()	

print("Done!")

执行结果:

┌──(kali㉿kali)-[~/tools]
└─$ python port_scanner.py
Enter the ip address you want to scan: 172.18.53.28
start port scan...
135 is open
139 is open
445 is open
5040 is open
8030 is open
11200 is open
16422 is open
25734 is open
29198 is open
49664 is open
49665 is open
49668 is open
49667 is open
49666 is open
49677 is open
49678 is open
49684 is open
50248 is open
60501 is open
Done!

标签:socket,scan,端口扫描,port,Python,host,线程,open,实现
From: https://www.cnblogs.com/Timesi/p/17834693.html

相关文章

  • mac上python安装mysqlclient模块方法
    运行pycharm后,打开命令行窗口确保您已经安装了MySQL,并且包括了MySQL的开发文件。您可以通过Homebrew来安装MySQL:brewinstallmysql#安装mysqlclient之前,先安装openssl:brewinstallopenssl#使用以下命令来安装mysqlclient:envLDFLAGS="-I/usr/local/opt/openssl/i......
  • 记录--产品:请给我实现一个在web端截屏的功能!
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、故事的开始最近产品又开始整活了,本来是毫无压力的一周,可以小摸一下鱼的,但是突然有一天跟我说要做一个在网页端截屏的功能。作为一个工作多年的前端,早已学会了尽可能避开麻烦的需求,只做增删改查就行!我立马开......
  • Ubuntu实现与主机Windows复制粘贴(安装VMware Tools)
    若不能实现主机与客户机间粘贴复制执行以下命令sudoapt-getautoremoveopen-vm-toolssudoapt-getinstallopen-vm-toolssudoapt-getinstallopen-vm-tools-desktop执行完成然后重启Ubuntu下安装VMwareTools直达链接......
  • 【开源】基于Vue.js的衣物搭配系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的衣物搭配系统,包含衣物档案模块、衣物搭配模块、衣物收藏模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,衣物搭配管理系统基于角色的访问控制,给普通用户、衣物......
  • 常用的Python代码片段(地理相关)
    把pandas的dataframe转为geopandas的地理格式(dftogeodf)defdf2gdf(df,lon_col='longitude',lat_col='latitude',epsg=4326,crs=None):gdf=gpd.GeoDataFrame(df)gdf['geometry']=gpd.points_from_xy(x=df[lon_col],y=df[lat_col]......
  • 常用的Python代码片段(通用)
    递归Merge数据表df=functools.reduce(lambdaleft,right:pd.merge(left,right,how='left',on=['id','year']),[maps,pp,pp_doy_rainDayCounts,pp_moy_rainZscore,modis_temp,pop,])深复制Importcopycopy.deepcopy(init_map......
  • python初学者学习笔记-第十章-pandas
    Chapter10/pandas10.1dataframe简介dataframe是pandas中最基础的数据结构,当然它也是pandas中最常见的对象,它跟表格类似。dataframe的行和列是分别存储的数据集;这种存储方式,加快了列和行的操作效率。10.1.1创建dataframe一般情况下,可以通过列表和字典这些类型的数据源来创建......
  • Streamlit 快速构建交互式页面的python库
    基础介绍streamlit是什么Streamlit是一个面向机器学习和数据科学团队的开源应用程序框架,通过它可以用python代码方便快捷的构建交互式前端页面。streamlit特别适合结合大模型快速的构建一些对话式的应用,可以看到一些行业内热门的使用。项目本身也比较成熟,release版本,start数量等都......
  • python 打包exe并可以在别人电脑上运行
    1:下载安装installerpipinstallpyinstaller2:打包pyinstaller-Fxxxx.py(-F打包的是带python环境的包 不带f,打的是本地可执行的包)3:运行效果......
  • python if判断和循环判断
    if判断在写代码的时候,往往需要根据某些条件进行判断,并根据判断结果执行不同的分支代码。#单个条件a=1ifa==1:print(11111)ifa==2:print(2222)else:print(333)#多个条件,加多少个都可以ifa==1:print(11111)elifa==2:print(22222)else:pri......