疯狂星期五小组-18 周实训作业

实习概况:周四:要求和作业

实习目的

通过本次实习,可以学习到:

  1. 独立规划和搭建中小型企业网络
  2. 熟练配置各种网络服务,满足企业日常办公需求
  3. 使用静态路由、RIP、OSPF等实现高效的网络互联
  4. 排查和解决常见网络故障,保障网络平稳运行
  5. 根据安全要求,配置ACL、NAT等安全策略
  6. 监控网络流量,分析网络性能,并进行优化
  7. 撰写网络配置文档,制定网络管理策略

实习任务:要求:内网

某公司企业内网,内网当中存在四个vlan ,分别为vlan10 vlan20 vlan30 vlan100

  1. 财务部是vlan10,并命名为caiwu
    技术部是vlan20,并命名为jishu
    管理部门为vlan30,并命名为guanli
    内网服务器内网HTTP-SERVER单独位于vlan100,vlan名称为fuwuqi。

  2. 配置基本网络:
    1)财务部的网段是192.168.1.0/24,网关为192.168.1.254
    2)技术部的网段为192.168.2.0/24,网关为192.168.2.254
    3)管理部的网段为192.168.3.0/24,网关为192.168.3.254
    4)服务器的网段为172.16.1.0/24,网关为172.16.1.254
    5)R1和SW1之间互联的地址为192.168.10.0/30的地址

  3. 现在要求所有的网关都在内网核心交换机SW1上,使用svi接口充当网关

  4. 实现内网所有PC和服务器之间的互联

  5. 由于内网员工对于计算机的使用能力较差,因此,针对财务部,技术部和管理部的终端而言,需要通过DHCP的方式自动获取IP地址(需要排除每个网段1-100的地址作为保留使用,从101开始获取),而服务器的地址由于需要固定访问,所以通过手动静态配置IP地址。(dhcp的server位于出口路由器R1上,使用dhcp的中继完成最终地址的获取)

  6. 允许内网管理部门的员工通过telnet管理内网的路由器和核心交换机,其他部门不允许通过telnet管理路由器和交换机。(要配置telnet管理内网设备)

要求:公网

公网部分

  1. R1和R2之间采用100.1.1.0/24网段,R2和R3之间采用124.126.100.0/24网段地址,R3和R4之间采用202.96.137.0/24网段地址,R3和外网HTTP-SERVER以及公网PC之间,采用124.126.200.0/24网段地址。(外网HTTP-SERVER和公网PC的网关为124.126.200.254)

  2. 为了保证公网之间能够通信,R1、R2、R3之间采用ospf动态路由协议进行通信

  3. 公网PC可以通过R1的8080端口访问到内网HTTP-SERVER的80端口的http业务

  4. 现在有一台公网服务器HTTP-SERVER,地址为124.126.200.10/24,现在需要内网用户能够访问到该公网服务器。(R1和R2之间使用124.126.100.0/24网段)

  5. 有一台公网的DNS-SERVER,地址为113.100.2.56/24,网关为113.100.2.1/24,我们最终想要通过访问www.shixun.com这个域名访问到公网http-server,并且查看首页的a small page,内容显示为:welcome to study our course!

要求:分支

  1. 内网PC7和PC8分别位于vlan70和vlan80这两个vlan当中
  2. PC7和PC8的网关分别为192.168.70.254 192.168.80.254,且网关位于R4路由器上
  3. PC7和PC8也要能够访问外网(测试访问公网HTTP-SERVER)

周四:拓扑图

一开始的拓扑:

然后的拓扑图如下:

最后的拓扑如下(IPSEC):

实训具体内容

见下文

Read more »

操作系统实验

实验一、进程调度试验

[目的要求]

   用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解.

[准备知识]

一、基本概念

1、进程的概念;
2、进程的状态和进程控制块;
3、进程调度算法;

Read more »

网络系统集成基础(实验学时)——实验一

实验要求:

  1. 网络设置、网络命令使用
  2. 熟悉思科模拟器packetTracer及华为模拟器的使用
  3. 设置一简单网络环境,例(pc1>>交换机SW>>pc2)熟悉网络抓包工具wireshark的使用
  4. 习题问答题如下(课本,上网查询)
Read more »

第十周实训——魔王大帝组

该文档已经不是最新,但是可以来方便阅读,有的新内容直接写在了word里(受时间关系导致)

项目概述

我们实现了一个:

  • 上课的基础功能,包括但不限于以下的功能:

    • 第二十条词云图
    • 青岛二手房散点图(面积与价格)
    • 青岛二手房各个地区均价情况
    • 青岛二手房户型分布图
    • 青岛二手房均价最高的几个小
    • 远程代码执行(POC):YOLO人脸识别。
    • 远程代码执行(POC):弹你计算器(字面意思)
  • 获得当前豆瓣热映的电影(根据地区,默认taian(泰安)),然后显示在网页中。

    • 用户可以点击【查看评论】、【查看封面】和【购票】按钮。
    • 【查看评论】会自动爬取前100条评论(接口调用没有写死,可以随便向后申请继续爬取多少条),然后展示给用户。
    • 【购票】从豆瓣获得链接后,自动跳转
    • 【查看封面】查看该电影的封面。(从豆瓣爬取)
    • 【查看评论】会自动根据当前评论通过jieba和wordcloud来生成一张好看的词云图片。(已经将原图的颜色的对比度调整,以便获得更好看的图云图片)
  • 将上述功能转变为API接口,类RESTful,提供功能:

    • 获得当前最热门的电影(同时提供subjectid
    • 根据电影的subjectid(豆瓣提供)来查看评论
    • 获得词云:发送subjectid即可发送回来一个json数据,其中包含base64编码的图片。
    • ai画图:发送subjectid即可。会自动根据当前评论,通过jieba来分词,选取前30条最热门的词汇,调用stable-diffusion XL模型来进行绘画一张符合评论分词的图片。
  • 将上述功能接入qq机器人(通过Graia框架)(但不限于qq机器人,可以通过框架的嵌套同时接入包括但不限于QQ官方机器人、企业微信机器人、钉钉机器人、Kook机器人、discord等)

    • 提供功能:用户发送:/查电影
    • 向用户发送最近热门的电影
    • 用户选择并发送数字(30秒内,如果超时会提示已经超时)
    • 发送电影的基本信息、评论、词云、AI画图的结果。
    • 以上功能的实现封装为了单独的类(同时可以随便封装为包),非常方便各种迁移,以及对于多线程或异步的调度非常方便。
  • SDUST查新闻,包括但不限于,词云,OPENCV数人头,看新闻,数据库存储~

    • 使用了32线程进行快速爬取,可在15分钟内下载3700条以上的新闻全部内容。
    • 异步下载图片,结合多线程可以非常快速地下载数据。
    • 爬虫请求量非常大,15分钟内请求量超过20000+。
    • 支持单线程低调地获取数据。
    • 将有关函数全部封装成模块,可以非常方便地导入和使用。
    • 封装了获取新闻列表、获取新闻页面内容、获取点击量、异步下载图片等功能。
    • 针对不同页面(如泰安校区新闻页)的差异进行了适配。
    • 将新闻内容、点击率、标题等存入sqlite数据库。使用sqlalchemy支持多线程操作。
    • 下载的图片按年月分类保存到本地文件夹。
    • 支持将数据导出为txt、csv等格式,方便其他程序读取使用。
    • 根据新闻内容生成了好看的词云图片。
    • 尝试对网站进行了简单的漏洞扫描,但因限制未完成。
    • 使用sqlite数据库存储爬取的新闻数据,包括新闻标题、发布时间、正文内容、点击量、图片URL等。
    • 引入了sqlalchemy库,封装了数据库操作,支持多线程并发读写,便于迁移到MySQL等其他数据库。
    • 提供了数据插入和查询的简单接口,可以方便地将爬取的数据入库和进行后续分析。
    • 对下载的图片按照年-月的目录结构进行存储归类,便于管理和查看。
    • 支持将数据以JSON、txt、csv等通用格式进行导出,方便与其他语言和系统进行交互和分析。
    • 利用Python的OpenCV库,对爬取的新闻图片进行人脸和人头检测,可以自动统计一张图片中的人数。为进一步分析提供了思路。
    • 对新闻正文内容进行分词处理,并使用wordcloud库生成美观的词云图片,直观展示新闻的热点话题。
    • 尝试使用工具对新闻网站进行了初步的漏洞扫描,但由于对方网站有所限制而未能完成。不过这为网络安全研究提供了一个切入点。
    • 上面的这个数据库,已经接到了flask上
    • 根据上面这个每个新闻可以实时生成词云图
  • YOLO V8 识别人脸和左眼右眼鼻子等定位~

  • docker-compose部署!

    • ovo

主界面

Read more »

云与虚拟化结课报告

引言

  • 介绍Docker和虚拟化技术的背景和重要性
  • 概述本次课程的实验内容和目标
  • dayi在讲自己的经历)

引言1——dayi

虽然之前运维比赛平台,出过一些网络安全的题目和容器,对Docker有一定的了解,因为经常折腾也写了不少的Dockerfile,但是超级有收获的!

虚拟化这个东东,真的超级上头,但是这个东东折腾起来也是无休止无止境的,而且会越来越多。

Read more »

算法实验报告1

发布地址(方便阅读):

  1. https://cmd.dayi.ink/3VqGmm4dRamR85T2ptXCsQ
  2. https://blog.dayi.ink/?p=91
  3. https://www.cnblogs.com/rabbit-dayi/p/17864541.html

P183习题-T1

题目描述

给定一个数字n和子集1,2,3,…,n - 1,请用数组输出所有不同的划分方式。
4有四种划分方式:1+1+1+11+1+2.1+3.2+2.5有六种划分方式:1+1+1+1+1.1+1+1+2,1+1+3,1+2+2,1+4,3+2。给定一个数字n和子集1,2,3.…,n-1,请用数组输出所有不同的划分方式。例如:
输入:4
输出:[(1,1,1,1),(1,1,2),(1,3),(2,2]]

题目解析

使用 DFS 来找到所有可能的整数划分。

  • 如果 n 变为 0,这意味着当前的 cur 数组是 N 的一个有效划分,因为加起来正好等于 N。将这个划分作为元组添加到结果列表 res 中,并返回。

  • 循环遍历从 st(起始索引)到 len(nums) 的所有整数。每次循环,选择一个数 nums[i-1] 并从 n 中减去这个数,表示将这个数纳入当前划分。

  1. 递归的调用:如果 nums[i-1] 小于或等于 n,这意味着我们可以将这个数作为当前划分的一部分。我们递归地调用 fn,传递新的 n 值(n - nums[i-1]),索引 i(确保不会选择小于当前数字的数字,从而避免重复),以及更新的当前划分 cur + [nums[i-1]]

  2. 避免重复的划分:通过在每次递归调用中传递 i 作为起始索引,我们确保不会出现重复的划分。这是因为我们总是选择当前数字或更大的数字,从而保持了划分中数字的顺序。

  3. 结束递归:当我们尝试所有可能的数字,并且 n 不再减少到 0,递归调用将结束。如果 n 变为负数,我们不做任何事情就返回,因为这意味着当前的划分无法加起来等于 N

整个过程可以视为一棵树,其中每个节点代表一个划分的决策。DFS 遍历这棵树,探索所有可能的路径,即整数 N 的所有可能划分。

  • res[0:len(res)-1] 从结果列表 res 中省略了最后一个元素。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
N = eval(input())
nums = [i for i in range(1, N + 1)]
res = []
def fn(n, st, cur):
if n < 0:
return
if n == 0:
res.append(cur)
return
for i in range(st, len(nums)):
fn(n - nums[i], i, cur + [nums[i]])
fn(N, 0, [])
print(res[0:len(res)-1])
Read more »

算法实验报告2

本文链接:

  1. https://type.dayiyi.top/index.php/archives/231/
  2. https://www.cnblogs.com/rabbit-dayi/articles/17864571.html
  3. https://cmd.dayi.ink/cbNEvd5MTn-YQFw0J7IuKw?edit
  4. https://blog.dayi.ink/?p=155

1.求幂集问题

也就是求全部的组合

DFS

  • 把全排列 DFS 树给记录下来就可以

  • DFS 到每个节点的时候,记录当前状态加入到结果集即可。

  • 复杂度$O(2^{N})$


Python 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
def dfs(nums, path, index, res):
res.append(path[:])
for i in range(index, len(nums)):
path.append(nums[i])
dfs(nums, path, i+1, res)
# 回溯
path.pop()

N = 5
nums = [i for i in range(1,N+1)]
res = []
dfs(nums, [], 0, res)
print(res)
Read more »

算法实验报告3——分支限界法

可访问链接:

  1. https://type.dayiyi.top/index.php/archives/234/
  2. https://www.cnblogs.com/rabbit-dayi/articles/17865610.html

1.艰难旅行问题

现已知一个大小为 N · M 的地图,地图中只有可能出现两个数字:0 或 1,
规定如果位于数字为 0 的格子上,则下一步只能往相邻四个格子中数字为 1 的格子走,如果位于数字为 1 的格子上,则下一步只能往相邻四个格子中数字为 0 的格子走。
如果给定起点格子,则可以向上下左右四个方向移动,且同一个格子不能重复走,求能在地图中到达多少格子?

  • 兔兔
  • 兔兔

我觉得这个题深搜广搜都可以。

Read more »
0%