香蕉单词小程序
详见:右上角→工具→香蕉单词
链接:香蕉单词小程序
Python使用scapy抓包并分析请求
一. 安装scapy
执行下列命令
1pip install scapy
官方文档:https://scapy.readthedocs.io/en/latest/usage.html
二. 进行抓包
获取网络信息
windows系统下,在命令行执行ipconfig /all获取网络信息。(如果是linux系统获取iface参数详见官方文档)
尝试抓包
先说明下即将用到的sniff方法。
定义如下:
12345678910111213141516171819202122sniff(count=0, store=1, offline=None, prn=None, filter=None, L2socket=None, timeout=None, opened_socket=None, stop_filter=None, iface=None)# 参数说明count:抓取报的数量,设置为0时则一直捕获store:保存抓取的数据包或者丢弃,1保存,0丢弃offline:从pcap文件中读取数据包,而不 ...
Python+PyInstaller+Cython打包exe文件
近期写了一个Python程序,但是不想把源码公开,于是在网上查询相关资料,发现可以通过生成pyd文件,最后打包成exe执行程序的方式,尽可能地防止反编译。
一. 简介
本文章内容适合windows开发环境,简单介绍一下接下来会涉及到的东西。
PyInstaller: 是一款用于将pyhon程序打包成exe文件的工具。
Cython:是用Python实现的一种语言,可以用来写Python扩展,用它写出来的库都可以通过import来载入,性能上比Python的快。
pyd文件:我们都知道,.py是编写好的源代码,而.pyc是编译好的字节码,.pyd则是一种python动态模块,实质上是一种dll文件。
二. 安装PyInstaller和Cython
我们可以通过pip来安装。
安装PyInstaller:pip install pyinstaller
安装Cython:pip install Cyphton
然后记得配置环境变量,确保命令行能执行pip、pyinstaller、cython命令。
三. 开始打包
假设我们已经写好了一个python文件,名为course.py,接下来 ...
树莓派4安装Ubuntu Desktop 20.10 记录
一. 准备
Ⅰ.下载 Win32DiskImager
Ⅱ.下载 Ubuntu 镜像,地址:https://ubuntu.com/download/raspberry-pi
Ⅲ.写入系统至TF卡中
Ⅳ.写入完成后,打开名为 system-boot 的磁盘,然后打开 config.txt 文件,修改显存 gpu_mem 参数(单位MB,推荐512)
Ⅴ.卡片插入树莓派4中,开机
补充:如果安装的是server版,可以先在system-boot磁盘中的network-config文件添加Wi-Fi,方便后面连接(默认用户密码为ubuntu),或者连接网线
二. 系统设置
注意:接下来即将进入系统引导配置界面,在这过程中踩了不少坑,一定要耐心看完!!!
2.1 引导配置
Ⅰ.选择语言:中文(简体)
Ⅱ.键盘布局:选择 Chinese - Hanyu Pinyin(altgr),这样系统会内置拼音输入法
Ⅲ.选择时区,默认 Shanghai 即可
Ⅳ.填写个人与计算机信息(选择自动登录)
2.2 进入系统后配置
注意:千万不要更换镜像源,因为此版本系统应该是Ubuntu为树莓派4(ARM架构)专 ...
Java+Selenium实现后台截图网页,可运行在树莓派上
前言:最近折腾了一个QQ机器人,突然有个灵感。当用户发送一个网页链接时,我想使用Java对网页进行截图,然后将截图文件发回到QQ上,感觉这个功能很酷炫,于是昨天(2020-10-29)研究了一晚上,下面对截图功能这个部分进行总结。
一. 概述
首先我在网上查询了相关资料(并不多),最常见的两种方案:
使用 Java 自带的 Robot 类,对电脑屏幕进行截图,不建议使用。
使用 Selenium 工具,对游览器进行截图。
由于最后想要运行在树莓派上(ARM 32位),遇到了不少问题。
受限于树莓派zero的性能,生成一张截图可能要30s左右。
二. 准备与安装
方案一:使用Java自带Robot类
只需要 JDK1.6 及以上版本即可。
方案二:使用Selenium
第一步:
安装 chrome 游览器:
123# Linux 上建议使用chromiumsudo apt install chromium-browser# Win和Mac可直接在官网下载
在 chrome 游览器中,或者命令行执行 chromium-browser --version 查看版本号
并在下面的 ...
Spring中@Autowired注入static静态变量问题
当静态方法或变量需要依赖被容器管理的类时,我们该如何去解决?为什么不推荐使用这种方法?
快速上手树莓派,安装系统与配置总结
前言:在最近的嵌入式实验课程中,使用了树莓派3b+进行开发。为了在课下探索更多树莓派相关功能,我在淘宝上购入了树莓派zero wh进行测试,以下内容为我总结的树莓派的系统安装与连接方法。
注意:本篇文章适合搭载树莓派 raspbian 系统的使用者。如果树莓派使用的是Ubuntu系统,请 点击这里。
一. 概述
什么是树莓派?
在我眼里,它是一台 “麻雀虽小,五脏俱全” 的计算机(CPU是ARM架构)。
结合Linux系统和GPIO引脚的它可以让我们快速开发、运行一些嵌入式应用。
我该如何选择树莓派型号?
如果只是想简单入门树莓派,也可以和我一样在淘宝购入一块:树莓派zero wh(裸板价格在100左右)。它搭载了一块 1GHz 的 CPU,拥有512MB的运存。并配有无线和蓝牙模块(注意型号是wh和w才有)。
以下是树莓派zero wh搭配 USB 拓展版后的图片,可以看到其体积很小,酷似一个U盘(不带TF卡一套下来是126元)
二. 安装系统并通过SSH连接
需要下载(微信公众号:树莓派创客营):
树莓派系统镜像
Win32DiskImager-0.9.5
需 ...
Ubuntu下的GCC初识与Makefile编写
前言:在嵌入式课程中会学到使用Linux下的GCC来编译C语言的方法,本文基于 Ubuntu 18.04 展示如何使用GCC以及编写基础Makefile文件。
一. 安装准备
首先打开命令行,使用sudo权限身份
第一步:更新包列表
1sudo apt update
第二步:安装 build-essential 软件包(包括了gcc / g++ / make)
1sudo apt install build-essential
第三步:查看是否安装完成
1gcc --version
二. 使用GCC编译C语言
例如,我先用vim编写一个 test.c 的c语言程序,然后可以使用下列命令。
1. 一步到位的编译
1234# 编译gcc test.c -o test# 执行./test
上面的编译命令中,其实包含了四个阶段:预编译、编译、汇编、连接。
2.1 预编译
1gcc -E test.c -o test.i
2.2 编译
12# 编译为汇编代码gcc -S test.i -o test.s
2.3 汇编
1gcc -c test.s -o test.o
2.4 连接
12# 负责将 ...
代码的艺术与规范,写代码的人都应该看看!
前言:本篇章内容是对书籍《代码整洁之道》的整理与总结,便于我们写代码时随时将规范牢记心中。千万别说下次一定,因为稍后等于不 (Later equals never)。
同时,我会对其中一些内容做一些修改和删减,如果表述或思想有误,欢迎在博客下方留言指出。
一. 整洁的代码
为什么要写整洁且规范的代码?对于一门语言或框架的初学者来说,写的模块并不复杂,代码之间耦合度并不高,因此并不重视代码规范。
但是对于一个要逐渐更新迭代的项目来说,不规范的代码是令人绝望的。当你后期想要维护代码时,你会有点无从下手,甚至一度想要 重构 这个项目,那么为何当初不多花点时间在代码整洁这件事情上?
建议大家都去看看这本书,它在多个方面阐述了如何写整洁的代码,其代码示例基于Java。如果你学习的语言不是Java,也应该去看看或游览完本篇博客,因为整洁代码的思想是通用的。
最后我想说:写代码是一门艺术,当你回过头来看当初写的整洁代码,沁人心脾。
二. 命名规范
2.1 名副其实
选好名字,最好让人一看到名字就懂是什么意思,如果发现更好的命名要及时替换旧的
坏代码
1int d; // 消逝的时间
好代码
...
使用frp进行内网穿透,将本地计算机端口映射到公网!
前言:最近要上信息检索课(其实就是Python入门),老师要求自带笔记本使用 Jupyter Notebook 来进行代码练习。想到这游戏本又大又重续航差,所以我决定使用 内网穿透 的技术,将运行在本机的服务端口映射到公网上,然后在课上使用 iPad+妙控键盘 就能轻松完成代码编写!(为啥不直接把 Jupyter Notebook 装在服务器上?因为懒!)
一. 介绍
使用内网穿透,能干啥?
举个例子,我写了个SpringBoot应用并运行在了8080端口上,此时我可以在本机通过 localhost:8080 端口访问。那么我想在其他电脑上访问呢?只要把这个8080端口映射到公网上,我们就可以通过公网IP+端口号的形式在任意一台联网的计算机访问了。
专业解释可以百度 / Google 一下。
二. 准备
我们将会使用 frp 作为内网穿透的工具,首先你得具备:本地计算机 + 云服务器。
frp工具地址:https://github.com/fatedier/frp/releases
在本地计算机和云服务器上下载好frp工具,注意版本号要一致!
Github点击下载:
或者使用命令 ...