python-端口扫描

本文介绍了一个使用Python实现的简单TCP端口扫描器。通过定义portscan函数进行TCP端口扫描,并利用多线程加速扫描过程。用户输入目标IP或网址后,程序将扫描1至5000的所有端口,输出开放的端口信息。

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

环境: python3

# 1. 定义portscan函数,用来进行TCP 端口扫描
# 2.启动多线程进行扫描函数
import socket
from threading import Thread
import time
def main(target):
    print("开始扫描: %s" %target)
    for port in range(1,5000): #定义扫描端口的范围
        t=Thread(target=portscan,args=(target,port))
        t.start()
# 1.定义portscan函数,用来进行TCP端口扫描
def portscan(target,port):
    try:
        client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        client.connect((target,port))
        print("[*] %s:%d开放" %(target,port))
        client.close()
    except:
        pass
if __name__ == '__main__':
    target=input("请输入你要扫描的IP或网址: ")
    start=time.time()
    main(target)
    end=time.time()
    print("总共耗时: %.2f s" %(end-start))

演示:
在这里插入图片描述

### 使用 Python-nmap 在 ENSP 环境中执行网络扫描 为了在 ENSP (Enterprise Network Simulation Platform) 中利用 `python-nmap` 执行网络扫描,需先确保环境已正确配置并安装必要的组件。 #### 安装依赖项 首先,在运行 Windows 的虚拟机上需要安装 Python 和 nmap 工具。Python 是编写脚本的基础,而 nmap 则用于执行实际的网络扫描操作[^4]。 ```bash # 更新包列表并安装nmap sudo apt-get update && sudo apt-get install nmap -y ``` 对于 Python 及其 pip 包管理器,则可通过访问官方网站下载适合版本的安装程序完成部署;pip 将用来安装 python-nmap 库。 #### 安装 python-nmap 库 通过 pip 来安装 python-nmap: ```bash pip install python-nmap ``` #### 编写 Python 脚本 创建一个新的 Python 文件,例如命名为 `network_scan.py`,并将以下代码粘贴进去: ```python import nmap def scan_network(target): nm = nmap.PortScanner() try: result = nm.scan(hosts=target, arguments='-sn') for host in nm.all_hosts(): print(f'Host : {host} ({nm[host].hostname()})') print(f'State : {nm[host]["status"]["state"]}') for proto in nm[host].all_protocols(): lport = nm[host][proto].keys() for port in lport: print(f'Port : {port}\tState : {nm[host][proto][port]["state"]}') except Exception as e: print(str(e)) if __name__ == "__main__": target_ip_range = "192.168.1.0/24" scan_network(target_ip_range) ``` 这段代码定义了一个简单的函数 `scan_network()` 接受目标 IP 地址范围作为参数,并调用 Nmap 对指定范围内主机的状态进行简单扫描[-1]。 #### 设置防火墙规则 考虑到安全因素,默认情况下某些端口可能被阻止。因此如果遇到无法 ping 通的情况,应该检查并适当调整防火墙设置以允许 ICMP 请求通过,就像之前提到过的那样[^2]。 #### 测试连接性 最后一步是在命令行界面下启动编写的 Python 脚本来验证一切工作正常: ```bash python network_scan.py ``` 这将会输出当前局域网内活跃设备的信息,包括它们各自的IP地址及其开放的服务端口号等细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值