从 Python 入门到网络安全资产收集:零基础快速上手

在网络安全领域,Python 几乎是从业者的 “必备武器”—— 它简洁易上手、生态丰富,能快速实现各类工具脚本的开发与落地。对于零基础小白来说,从 Python 基础语法入门,再到上手实用的安全工具,是一条高效的进阶路径。本文将从 Python 基础讲起,一步步带你落地两款经典的网络安全工具,轻松完成从入门到实战的跨越。

一、认识 Python:为什么它是网络安全的首选语言?

Python 是一种解释型、面向对象、动态数据类型的高级编程语言,它的核心优势在于「可读性强、简洁易学习、生态完善」。

  • 无需复杂的语法配置,零基础也能快速写出可运行的代码;
  • 拥有高效的高级数据结构,支持简单有效的面向对象编程;
  • 丰富的第三方库覆盖网络请求、数据解析、漏洞检测等各类安全场景,无需重复 “造轮子”。

Python 的官方网站是 https://www.python.org,目前主要分为 Python2 和 Python3 两个版本,其中 Python2 已于 2020 年 1 月 1 日停止官方支持,建议大家直接选择 Python3.8 及以上的稳定版本(兼容性更好,支持更多新特性)。

二、Python 核心基础语法:打好入门第一关

Python 的简洁性在语法中体现得淋漓尽致,掌握以下核心内容,就能应对大部分基础开发场景。

1. 变量与数据类型:存储数据的基本容器

Python 最大的特点是无需声明变量类型,直接赋值即可,常用的数据类型包括整数(Int)、浮点数(Float)、字符串(String)、布尔值(Boolean)。

字符串格式化与类型转换

在实际开发中,经常需要拼接字符串或转换数据类型,推荐使用 f-string(简洁高效),也可以使用 + 号拼接(注意数字需用 str() 转换为字符串)。

python

运行

# 定义基础变量 age = 30 # 整数 (Int) pi = 3.14159 # 浮点数 (Float) name = 'niko' # 字符串 (String) is_student = True # 布尔值 (Boolean) # 1. f-string 格式化输出(推荐) print(f"姓名: {name}, 年龄: {age}") # 2. 类型转换示例 str_num = "123" int_num = int(str_num) # 字符串转换为整数 print(f"字符串 '{str_num}' 转换为整数: {int_num}") # 3. + 号拼接(数字必须转字符串) new_message = "我的分数是: " + str(int_num) print(new_message) 
三大常用数据结构

Python 提供了三种实用的数据结构,分别适用于不同的场景,掌握它们就能高效处理各类数据集合。

数据结构定义格式核心特性适用场景
列表(List)方括号 []可变、有序存储需要增删改的动态数据(如待办事项)
元组(Tuple)圆括号 ()不可变、有序存储无需修改的核心数据(如身份证信息)
字典(Dict)花括号 {}可变、键值对、Python3.7 + 有序存储需要通过 “关键字” 查询的数据(如通讯录)

python

运行

# 1. 列表:增删改查 todo_list = ["买牛奶", "取快递", "写代码"] todo_list.append("运动30分钟") # 新增元素 todo_list[1] = "取快递(顺丰)" # 修改元素 del todo_list[2] # 删除元素 print("列表结果:", todo_list) # 2. 元组:不可修改,仅查询 person_info = ("zs", "110101199001011234", "1990-01-01") print("元组查询姓名:", person_info[0]) # 3. 字典:键值对操作 contact = {"zs": "13800138000"} contact["lisi"] = "13700137000" # 新增键值对 print("字典查询zs手机号:", contact["zs"]) 

2. 流程控制:掌控代码的执行逻辑

Python 不使用大括号 {} 划分代码块,而是依靠缩进(通常 4 个空格),这是 Python 的核心规则,缩进错误会直接导致程序运行失败。

条件判断:if-elif-else

用于根据不同条件执行不同的代码逻辑,适用于成绩评级、权限判断等场景。

python

运行

user_score = 85 if user_score >= 90: print("成绩优秀") elif user_score >= 80: print("成绩良好") else: print("需要努力") 
循环:while 与 for

用于重复执行某段代码,while 适用于未知循环次数的场景,for 适用于已知循环次数或遍历数据集合的场景。

python

运行

# 1. while 循环:倒计时(未知循环次数,依赖条件判断) count = 3 while count > 0: print(f"While倒计时: {count}") count -= 1 # 2. for 循环:遍历范围与列表(已知循环次数) # 遍历 1-5(range 左闭右开) for i in range(1, 6): print(f"For循环数字: {i}") # 遍历列表 fruits = ["apple", "banana", "orange"] for fruit in fruits: print("水果名称:", fruit) 

3. 函数与面向对象:代码复用与封装

函数:def 关键字定义

函数是组织好的、可重复使用的代码段,用于实现单一或相关联的功能,能大幅提升代码的复用性和可维护性。

python

运行

# 定义求和函数 def sum_num(arg1, arg2): total = arg1 + arg2 print("函数内计算结果:", total) return total # 调用函数 result = sum_num(10, 20) print("函数返回结果:", result) 
面向对象:类与对象

类是一个模板或蓝图,包含属性(存储数据)和方法(执行操作),对象是类的实例化结果。在网络安全工具开发中,面向对象能更好地封装工具的核心逻辑。

python

运行

class Dog: species = "犬科" # 类属性(所有实例共享) def __init__(self, name, age): # 构造函数:初始化实例属性 self.name = name # 实例属性 self.age = age def bark(self): # 实例方法:定义对象行为 print(f"{self.name}在汪汪叫") def __str__(self): # 魔术方法:自定义对象打印格式 return f"{self.name}今年{self.age}岁了" # 实例化对象并调用方法 dog1 = Dog("小黑", 3) dog1.bark() print(dog1) 

三、Python 模块系统:代码复用的核心支撑

模块是包含 Python 代码的 .py 文件,里面可以存放函数、类和变量,是 Python 代码组织和复用的核心。Python 的模块主要分为三类:内置模块、自定义模块、第三方模块。

1. 内置模块:Python 自带的 “工具箱”

内置模块是 Python 安装后自带的标准库,无需额外安装,直接导入即可使用,常见的有 mathosrandomtime 等。

python

运行

# 方式1:导入整个模块 import math print("4的平方根:", math.sqrt(4)) # 方式2:导入模块中的指定函数 from math import sqrt print("9的平方根:", sqrt(9)) 

2. 自定义模块:封装自己的功能

自定义模块是开发者自己编写的 .py 文件,用于封装特定的功能逻辑,命名时注意不要与内置模块重名。

步骤 1:创建自定义模块文件(my_sum.py)

python

运行

# my_sum.py def add(num1, num2): """求两个数的和""" return num1 + num2 
步骤 2:导入并使用自定义模块

python

运行

import my_sum result = my_sum.add(1, 2) print("自定义模块求和结果:", result) 

3. 第三方模块:丰富的生态扩展

第三方模块是由其他开发者或组织发布的模块,需要通过 pip 命令安装,这也是 Python 生态强大的核心原因。

常用 pip 命令

bash

运行

# 1. 列出已安装的模块 pip list # 2. 安装指定模块 pip install 模块名 # 3. 国内镜像源安装(解决网络卡顿,推荐清华源) pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple # 4. 卸载模块 pip uninstall 模块名 
国内优质镜像源

四、网络安全实战:Python 工具落地

掌握了 Python 基础和模块系统后,我们就可以上手网络安全领域的实用工具,完成从理论到实战的跨越。

1. 模拟浏览器:requests 库(网络请求必备)

requests 是 Python 最常用的网络请求库,核心功能是模拟浏览器向网站发送请求、获取数据,是后续爬虫、资产探测、漏洞扫描的基础。

步骤 1:安装 requests 库

bash

运行

pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple 
步骤 2:发送 GET 请求并获取响应

python

运行

import requests # 目标域名 domain = "https://www.zhibangyang.cn/" # 发送 GET 请求 r = requests.get(domain) # 获取响应状态码(200 表示请求成功) print("响应状态码:", r.status_code) # 获取响应文本内容(网站源码) print("网站源码:", r.text[:500]) # 只打印前500个字符,避免输出过长 

2. 子域名收集:OneForAll 工具

OneForAll 是一款基于 Python 开发的功能全面的域名信息收集与爆破工具,能高效枚举目标域名的子域名、获取解析记录与资产信息,是网络安全渗透测试中的必备工具。

步骤 1:下载 OneForAll

下载地址:https://github.com/shmilylty/OneForAll下载后解压到本地(如 D:\Oneforall\OneForAll-master)。

步骤 2:安装依赖

打开终端,进入解压后的目录,批量安装项目所需依赖:

bash

运行

# 进入目录 cd D:\Oneforall\OneForAll-master # 安装依赖(使用阿里云镜像源) pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ 
步骤 3:使用 OneForAll 收集子域名

bash

运行

# 方式1:使用默认字典扫描目标域名 python oneforall.py --target https://www.zhibangyang.cn run # 方式2:使用自定义字典扫描 python oneforall.py --target https://www.zhibangyang.cn --wordlist=自定义字典路径\字典.txt run 

运行完成后,工具会自动生成详细的子域名报告,包含子域名、解析记录、状态码等信息,方便后续资产梳理和漏洞探测。

五、总结与展望

  1. Python 以其简洁易上手、生态丰富的特点,成为网络安全领域的首选语言,零基础小白可优先从 Python3.8+ 入门。
  2. 掌握变量、数据结构、流程控制、函数与面向对象等基础语法,是后续工具开发和使用的核心前提。
  3. Python 模块系统(内置、自定义、第三方)是代码复用的关键,pip 命令和国内镜像源能高效解决第三方模块的安装问题。
  4. requests 模拟网络请求,到 OneForAll 子域名收集,是 Python 网络安全实战的入门路径,后续可深入学习 scapy(网络数据包处理)、BeautifulSoup(数据解析)等工具,提升实战能力。

Python 的学习之路没有捷径,多敲代码、多做实战,才能快速将知识转化为能力,在网络安全领域站稳脚跟。

Read more

LeetCode128:哈希集合巧解最长连续序列

LeetCode128:哈希集合巧解最长连续序列

一、题目回顾 LeetCode 128 题「最长连续序列」是一道中等难度的数组题,核心要求如下:给定一个未排序的整数数组 nums,找出其中数字连续的最长序列(不要求序列元素在原数组中连续)的长度,且必须设计时间复杂度为 O (n) 的算法。 示例直观理解: * 输入 nums = [100,4,200,1,3,2],输出 4(最长序列是 [1,2,3,4]); * 输入 nums = [0,3,7,2,5,8,4,6,0,1],输出 9(完整连续序列 0-8)。 二、

By Ne0inhk
【优选算法必刷100题:专题五】(位运算算法)第033~38题:判断字符是否唯一、丢失的数字、两整数之和、只出现一次的数字 II、消失的两个数字

【优选算法必刷100题:专题五】(位运算算法)第033~38题:判断字符是否唯一、丢失的数字、两整数之和、只出现一次的数字 II、消失的两个数字

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 🎬艾莉丝的算法专栏简介: 文章目录 * 常见位运算总结 * 1 ~> 刷前必刷题单 * 2 ~> 博主手记 * 033 判断字符是否唯一 * 1.1 解法(位图的思想): * 1.2 算法实现 * 1.3 博主手记 * 034 丢失的数字 * 2.1 解法:位运算 * 2.2 算法实现

By Ne0inhk
【计算机毕业设计案例】基于Python的电商用户行为分析系统(程序+文档+讲解+定制)

【计算机毕业设计案例】基于Python的电商用户行为分析系统(程序+文档+讲解+定制)

java毕业设计-基于springboot的(源码+LW+部署文档+全bao+远程调试+代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围::小程序、SpringBoot、SSM、JSP、Vue、PHP、Java、python、爬虫、数据可视化、大数据、物联网、机器学习等设计与开发。 主要内容:免费开题报告、任务书、全bao定制+中期检查PPT、代码编写、🚢文编写和辅导、🚢文降重、长期答辩答疑辅导、一对一专业代码讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。 特色服务内容:答辩必过班 (全程一对一技术交流,帮助大家顺利完成答辩,

By Ne0inhk
2025 腾讯广告算法大赛 Baseline 项目解析

2025 腾讯广告算法大赛 Baseline 项目解析

项目概述 2025 腾讯广告算法大赛 Baseline,一个简单的序列推荐系统,主要用于建模用户和物品的交互序列,并利用多模态特征(文本、图像等 embedding)来提升推荐效果。 核心文件功能 1. main.py - 主训练脚本 * 负责模型训练的整体流程 * 包含参数解析、数据加载、模型初始化、训练循环等 * 支持断点续训和仅推理模式 * 使用 TensorBoard 记录训练日志 main.py 代码 import argparse import json import os import time from pathlib import Path import numpy as np import torch from torch.utils.

By Ne0inhk