avatar
文章
102
标签
42
分类
7
首页
时间轴
标签
分类
音乐
图库
清单
  • 开发工具
  • 疑难解答
  • 烟草纲目
友链
关于
王总的博客
首页
时间轴
标签
分类
音乐
图库
清单
  • 开发工具
  • 疑难解答
  • 烟草纲目
友链
关于

王总的博客

【网络基础】 校园网环境下VMware虚拟机联网底层机制与代理穿透实战
发表于2026-04-15|更新于2026-04-15|计算机网络|虚拟机
前言在校园网(如常见的网页认证、客户端认证)环境下配置 Linux 虚拟机网络,堪称每个工程专业学生的“必修课”。面对网关严格的多终端检测和 NAT 屏蔽,常规的配置往往无济于事。本文将从底层网络拓扑的角度,详细拆解 VMware 虚拟机是如何与物理宿主机进行网络交互的,并深入分析在常规 NAT 与桥接均失效的极端网络环境下,如何通过应用层代理(如 CCProxy)实现网络穿透。 虚拟机联网底层机制剖析VMware 为虚拟机提供了三种主要的网络连接模式,本质上是虚拟出了不同的网络交换机(vSwitch)和网卡(vNIC)。 1. 桥接模式 (Bridged - VMnet0)机制原理: 在桥接模式下,VMware 虚拟出了一个交换机(VMnet0),将虚拟机的网卡直接与宿主机的物理网卡(如以太网或 WLAN)进行桥接。此时,虚拟机在逻辑上与物理机处于同一个局域网层级。它会向局域网的 DHCP 服务器(即校园网的路由器)发送广播包,请求分配一个独立的 IP 地址和 MAC 地址。 比喻: 就像一个新生搬进了寝室,他需要亲自去宿管阿姨(DHCP 服务器)那里登记,申请一张属于自己的...
【Python】文件输入输出
发表于2026-04-14|更新于2026-04-15|Python|文件输入输出
1. 标准 I/O vs 文件 I/O平时你在电脑上自己运行代码时: 标准输入 (Standard Input):代码运行到 input() 时会停下来,等你用键盘敲字回车。 标准输出 (Standard Output):代码运行到 print() 时,结果会直接显示在**屏幕(控制台)**上。 但在算法竞赛或者学校的评测系统里,评测机要在几秒钟内测试成千上万份代码,不可能有人工坐在那里对着你的程序敲键盘输入测试数据。 所以,平台会提前把所有的测试用例写在一个文本文档里(比如题目要求的 input.txt)。评测要求你的程序: 不要等键盘输入,直接去读取 input.txt 里的数据。 不要打印在屏幕上,把算出来的结果直接写进 output.txt 里。 评测机最后只需要对比你的 output.txt 和标准答案文本文档是否完全一致,就能判断你对不对。 2. 那几行代码到底在干嘛?在 C 语言里,如果要解决这种文件重定向问题,通常会用到 freopen 函数。在 Python 里,原理非常相似,就是通过操作 sys 模块来实现流的替换。 1234imp...
【C语言】打印二进制
发表于2026-04-12|更新于2026-04-12|C语言|位运算•二进制
在C语言里打印二进制标准的 C 语言(C23 之前)里没有类似 %b 这样的二进制格式化输出符。想要打印二进制,必须老老实实地利用右移 (>>) 和 按位与 (&),把数字里面的每一位剥离出来,逐个打印。 123456789101112131415#include <stdio.h>int main() { int n; scanf_s("%d", &n); for (int i = 0; i < (1 << n); i++) { for (int j = n - 1; j >= 0; j--) { printf("%d", (i >> j) & 1); } printf("\n"); } return 0;} 妈的,感觉C语言功力尽失。 下面是递归回溯法,现在我状态不是很好,所以不是我写的 12345678910111213141516171819202122232...
【Python】二进制序列生成与输出
发表于2026-04-12|更新于2026-04-12|Python|格式化输出•位运算•二进制•循环
题目要求: 给定一个正整数N,你需要输出所有长度为N的二进制序列(即只包含 0 和 1 的字符串)。 输出顺序:必须按照字典序(从小到大)排列。例如,当 $N=2$ 时,顺序应为 00, 01, 10, 11。 格式:每行输出一个二进制字符串。 解题方法限制 递归回溯法(Recursive search/backtracking)。 二进制加 1 法(通过模拟二进制加法从 $0$ 一直加到 $2^N-1$)。 输入 输出 2 00011011 我写的代码: 1234567haha = int(input())figure = [0,1]result = [f"{a}{b}{c}{d}{e}{f}{g}{h}{i}{j}{k}{l}{m}{n}&#...
【Python】Python中强大的数据结构和字典升级版
发表于2026-04-12|更新于2026-04-12|Python|格式化输出•列表•数据结构•字典
题目要求: No. Standard input Standard output 1 5Ivanov 5Petrov 4Ivanov 3Sidorov 5Petrov 5 Ivanov 4.00Petrov 4.50Sidorov 5.00 2 3Ivanov 5Ivanov 5Petrov 3 Ivanov 5.00Petrov 3.00 这是我写的代码: 1234567891011121314151617181920n = int(input())name_list = []child_list = {}child_frequency = {}for _ in range(n): name , grade = input().split() grade = int(grade) if name not in child_list: name_list.append(name) child_list[name] = grade child_frequency[...
【Python】输出与格式化
发表于2026-04-09|更新于2026-04-09|Python|格式化输出•输出
【Python】输出与格式化一、基础 print 输出1print(<对象1>, <对象2>, ...) 逗号拼接的隐形空格 当输出多个对象并用逗号隔开时,默认会在对象之间插入一个空格。 123name = "张三"print("我叫", name) # 实际输出: 我叫 张三 (注意中间的空格) 二、f-string 格式化(推荐)在字符串前加 f,直接用 {} 包裹变量,所见即所得,避免多余空格和强转类型。 1f"<文本> {<变量>} <文本>" 示例: 1234name = "张三"age = 18print(f"我叫{name},今年{age}岁")# 实际输出: 我叫张三,今年18岁 三、print 进阶参数1. sep 参数(分隔符)控制多个输出对象之间的连接字符(默认是空格 ' ')。 12print("...
【Python】告别C语言思维,用更 Pythonic 的方式解决字符串处理与字典映射
发表于2026-04-09|更新于2026-04-09|Python|字符串•字典•数据处理
题目描述给定 n 个服务器的名称与 IP 地址映射,以及 m 条包含 IP 地址的 Nginx 配置命令。你需要根据命令中的 IP 地址,查找到对应的服务器名称,并将其作为注释追加到每条命令的末尾。 输入格式: 第一行包含两个整数 n 和 m(1 <= n, m <= 1000),分别表示服务器的数量和命令的数量。 接下来的 n 行,每行包含两个字符串 name 和 ip,用空格隔开,代表服务器名称和 IP 地址(保证所有 IP 唯一)。 接下来的 m 行,每行是一条配置命令,格式为 command ip;(注意 IP 末尾自带一个分号)。保证命令中的 IP 一定在前面的列表中存在。 输出格式: 依次输出处理后的 m 条命令。 每条命令按原样输出,并在末尾追加 #name,其中 name 是该 IP 对应的服务器名称。 样例输入: 123452 2main 192.168.0.2replica 192.168.0.1block 192.168.0.1;proxy 192.168.0.2; 1234567893 5google 8.8.8...
【Python】字典
发表于2026-04-09|更新于2026-04-09|Python|字典
在 Python 中,字典(Dictionary) 是最常用、也是最强大的数据结构之一。它和我们现实生活中使用的字典非常相似:在现实中的字典里,你通过“拼音或部首”查找到具体的“释义”;在 Python 字典中,你通过**“键(Key)”来查找对应的“值(Value)”**。 这被称为**“键值对(Key-Value pairs)”**映射。 下面我们从零开始,一步步拆解 Python 字典的用法。 1. 字典的四大核心特征 通过键来访问: 字典里的元素没有索引(不像列表用 [0]、[1] 访问),而是通过独一无二的“键”来获取“值”。 键必须是唯一的: 同一个字典里不能有两个相同的键。如果强行写入相同的键,后面的值会覆盖前面的值。 键必须是不可变类型: 字符串、数字、元组可以作为键;但列表、字典不能作为键。值(Value)则可以是任何数据类型。 有序性(Python 3.7+): 从 Python 3.7 开始,字典会记住你添加元素的顺序(在这之前的版本中,字典是无序的)。 2. 创建字典创建字典主要使用大括号 {},键和值之间用冒号 : 隔开,不同的键值对用逗号 , 隔...
【Python】数据处理,split+map
发表于2026-04-09|更新于2026-04-09|Python|输入•数据处理
如何实现读取一行输入的两个数字 在编写算法题或处理外部数据流时,我们经常需要解析同一行输入的多个数据。如果在 C 语言中,我们习惯使用 scanf("%d %d", &n, &d) 来读取格式化数据。但在 Python 中,这种操作有着更具“Pythonic”风格的优雅实现方案:map() 与 split() 的组合。 本文将深入拆解这两个底层函数的工作机制,探讨其进阶用法以及底层的迭代器特性。 一、 split():字符串分割split() 是 Python 字符串内置的核心方法,其底层逻辑是通过遍历字符串并匹配分隔符,将长字符串切割为多个子串,最终返回一个列表。 1. 基础用法:默认切分如果不传入任何参数,split() 默认以所有空白字符(包括空格、换行符 \n、制表符 \t 等)作为分隔符,并且会自动丢弃连续的空白字符。 123text = " 3 5 \t 7 "result = text.split()print(result) # 输出: ['3', '5', &...
host文件
发表于2026-04-06|更新于2026-04-09|计算机网络|host文件
Windows 系统的 hosts 文件是一个没有扩展名的纯文本文件,它的核心作用是将域名(网址)强制映射到指定的 IP 地址。 你可以把它理解为电脑本地的一个“私人专属通讯录”或“微型 DNS 服务器”。 它是如何工作的?当你在浏览器中输入一个网址(例如 github.com)或程序尝试连接某个域名时,Windows 系统解析该域名的顺序是: 优先检查 hosts 文件: 看看里面有没有关于这个域名的 IP 地址记录。 如果没有找到: 系统才会通过网络向外部的 DNS 服务器(比如你所在运营商的 DNS,或者 114.114.114.114)发起查询请求。 只要在 hosts 文件里写了规则,系统就会绝对服从这条规则,不再去网络上查询。 hosts 文件的常见用途 本地开发与测试: 开发者经常需要将某个测试域名(比如 dev.mysite.com)指向本机的 IP 地址 127.0.0.1,这样在电脑上就能直接预览开发中的项目。 屏蔽恶意网站或广告: 如果你把某个弹窗广告的域名(比如 ads.example.com)映射到一个无效的 IP 地址(如 0.0.0.0 或 12...
12…11
avatar
Wang Bo Sen
学无止境
文章
102
标签
42
分类
7
Follow Me
公告
正在完善中
最新文章
【网络基础】 校园网环境下VMware虚拟机联网底层机制与代理穿透实战2026-04-15
【Python】文件输入输出2026-04-14
【C语言】打印二进制2026-04-12
【Python】二进制序列生成与输出2026-04-12
【Python】Python中强大的数据结构和字典升级版2026-04-12
分类
  • C语言78
  • Python13
  • markdown1
  • 开发工具1
  • 文章4
  • 烟草纲目1
  • 计算机网络2
标签
文件输入输出 ascll码 列表推导式 宏定义 排序 数组地址 数据类型 指针 虚拟机 运算符 输入合法性校验 结构体 格式化输出 静态变量 字典 关键字 循环 math.h 教程 数据处理 函数 头文件 位运算 二维数组 二进制 列表 递归 数据结构 环境配置 输出 八进制 host文件 字符串 地址 转义字符 缓冲区 动态内存分配 VS Code 输入 占位符
归档
  • 四月 2026 12
  • 三月 2026 4
  • 二月 2026 2
  • 一月 2026 7
  • 十二月 2025 26
  • 十一月 2025 45
  • 十月 2025 5
  • 一月 2024 1
网站信息
文章数目 :
102
本站总字数 :
106.4k
本站访客数 :
本站总浏览量 :
最后更新时间 :
文档
开发工具疑难解答烟草纲目
其他
音乐图库友情链接关于
框架
HexoButterfly
贊助
JerryC
© 2025 - 2026 By Wang Bo Sen|框架 Hexo 8.1.1|主题 Butterfly 5.5.4