标签:软件 - 第2页

校园网实现自动网页认证

开学了,学校的校园网真的不靠谱,用户验证很容易失效,每天打开电脑基本都要重新登录网页进行验证,繁琐不说,一些开机自启的软件还会因为没网而出问题。 为此特地研究想办法写了个python脚本(为什么用python?因为我不会写cmd和powershell的脚本啊),以及通过任务计划,实现连接校园网时自动运行脚本。 首先说明我们学校校园网是通过网页端登录认证的,不同学校情况不同,仅供思路参考。 首先打开浏览器进入认证页面,先不登录,按F12打开控制台,选择Network选项卡。 然后再输入用户名密码进行登录,可以看到右侧Network选项卡开始活动。 Name下可能有好几项内容,仔细观察一下还是能比较容易看出跟验证是否相关的。我这里有两项get请求,可能有的校园网一个post请求就可以验证了,要看具体情况。 这样我们就知道我们需要发什么请求才能进行验证,而我们要做的就是利用python帮我们把相应的请求发出去。 为了方便我们可以右键内容,把请求复制成相应的代码。我这里选择Copy as cURL (bash),一方面可以方便转换成python代码,一方面以后用路由器,可以直接写一个再linux下使用curl的bash脚本。 为了图方便我们使用工具,把两段分别复制进去,在左边选择Python 但是每次连接校园网时分配到的ip地址可能并不相同,我们需要在每次运行时自动获取当前ip。 这里利用了中的方法二来获取本机ip。另外再把用户名和密码改为参数形式,便于后续修改。 ``` import requests import socket user = "" password = "" try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect((' ip = s.getsockname()的 然后在操作选项卡中新建操作。选择「启动程序」,程序选择pythonw.exe,「添加参数」中输入python脚本的名称,「起始于」中输入脚本所在路径。 最后保存即可。这样每次电脑开机自动连接到校园网时,就会运行验证脚本。 使用路由器的话原理类似,首先需要一台openwrt或者padavan系统的路由器,然后写一个bash脚本,获取分配的ip地址,再通过curl发送验证请求。

阅读全文

Python标准库之wave

项目需要利用一个svm模型对语音进行测谎,而在此之前要对wave文件进行处理,我们可以使用Python自带的标准库wave。 但实际我并不推荐使用wave,用soundfile, librosa和pydub之类的第三方库会方便和强大得多。但是项目先前已经用到了,就只能继续用着。 话说我的博客真的是想到啥写啥,不系统,也没啥深度,纯当水一水吧。 wave库可以(其实也是只能)对WAV文件做一些简单地处理。 跟普通文件IO中的open差不多。 分为和。是只读模式,返回一个对象。是只写模式,返回一个对象。无法同时对一个对象进行读写。 使用完毕后也要调用关闭文件。 比如: 或者用with写法,会自动调用 使用前面用以只读模式打开,返回的对象。 主要方法: 另外音频时长可以利用总帧数除以采样率得到,单位为秒: 使用前面用以只写模式打开,返回的对象。 主要方法: 截取音频文件5s ~ 8s的部分: 上方示例里,wave可以实现截取片段的操作,但是想要实现双声道转单声道、重采样之类的操作可能就要手动对帧数据做修改,我没有尝试过。这里用librosa可以很方便实现(librosa保存音频文件需要依赖soundfile)。 例子: librosa还有很多更高级的用法,我也还没研究,就不在此献丑了。

阅读全文

React + Django项目部署

现在替实验室做的项目,前端用的是React,后端是Python的Django,并且要前后端分离,前端通过向后端端口发送fetch请求调用后端api,数据通过json交换。因此需要用Nginx分别部署前端和后端。 先在React项目文件下运行进行打包,然后上传至服务器。服务器安装完Nginx后就可以新建站点配置。 因为React只有一个index.html,url需要都转发至index.html才能正常访问。比如在React中编写访问跳转到登录,但是如果不转发,访问时会找不到资源提示403。而转发后则能正常调用相应的js等从而正常访问。 重启一下Nginx服务,浏览器输入域名就可以访问了。 后端相对麻烦一些,还额外需要安装uWSGI。大概思路是Nginx接收并处理静态请求,一旦收到动态请求,则转发给uWSGI,再由uWSGI交给Django进行处理。 另外这样前后端分离可能涉及到跨域,得安装django 先将Django项目打包上传至服务器。安装uWSGI以后,在Django项目路径下新建一个uwsgi.ini,然后进行配置。 :定义项目运行的端口 :项目路径 :Django项目会自动包含一个wsgi.py,一般在路径下的同名文件夹中,例如。这里只要填写即可。 :进程数 有需要的话,还有其他额外的配置参数,可以参考官方文档。 接着需要在Nginx中对uWSGI进行配置。 这里Nginx监听了8000端口,从8000端口接收请求,而uWSGI中项目工作在8001端口,注意区分。 运行: Django项目就会被启动。 通过杀掉uWSGI中设定的项目端口: 就可以停止Django项目的运行。 另外通过Supervisor,能够实现开机自启与进程保护。 配置可以参照: 重启Nginx,后端部分应该就可以正常工作了。 前端只需要发送请求到上面Nginx设置的后端域名处(没有域名就发到),就可以实现调用。例如前端(这里仅包含请求的收发,不包括处理): 后端urls.py:

阅读全文

WSL简介及安装教程

日常学习和娱乐我都在使用Windows,但遇到部分项目尤其是需要部署在服务器上的时候,利用Linux开发就更加方便。双系统性能高效,但切换麻烦;虚拟机方便,可以和win平台同时运行,但每次运行需要等待虚拟机启动。 微软为Windows 10带来了全新的WSL(Windows Subsystem for Linux),即适用于 Linux 的 Windows 子系统(总感觉名字是不是反了)。通过WSL,Liunx控制台就跟Powershell一样易用,并且子母系统间能够互相访问文件系统,可以很方便地在Windows上开发Linux平台的应用程序。 WSL版本又分WSL 1和WSL 2,两者的原理不同。一个官方的比较表格如下: |功能 | WSL 1 | WSL 2| | |Windows 和 Linux 之间的集成 | ✅ | ✅| |启动时间短 | ✅ | ✅| |占用的资源量少| ✅ | ✅| |可以与当前版本的 VMWare 和 VirtualBox 一起运行 | ✅ | ✅| |托管 VM | ❌ | ✅| |完整的 Linux 内核 | ❌ | ✅| |完全的系统调用兼容性 | ❌ | ✅| |跨 OS 文件系统的性能 | ✅ | ❌| 简单来说WSL 1是在Windows上虚拟了一个Linux内核,模拟Linux系统调用,以运行Linux中的程序,更加原生,启动速度极快,甚至能直接用Windows任务管理器来管理Linux子系统的进程。但同样也有缺点,主要是兼容性问题。包括Docker等程序无法在WSL 1上使用,像我使用django时会提示"You're probably using an uncommon filesystem setup"。 而WSL 2则是基于Hyper WSL 1和WSL 2的安装略有区别 首先在「控制面板」 打开微软应用商城,搜索你想安装的Linux,比如Ubuntu。 这里有三个版本,后面不带版本号的默认是最新的LTS版本,现在也就是 完成后打开,控制台会继续进行最后的安装操作,按提示输入用户名和密码即可完成安装。 在资源管理器地址栏中输入,可以看到所有Linux子系统的文件系统。可以直接在Windows下对其中文件进行编辑。 因为WSL 2基于虚拟机,因此需要在「控制面板」 在安装Linux发行版之前,先将WSL 2设置为默认版本,需要在powershell中输入: 或者如果你已经安装了基于WSL 1的Linux发行版,想升级到WSL 2,先在powershell中输入来查看已有的Linux和其WSL版本: 然后更改其WSL版本: 例如: 在升级过程中,可能会碰到提示「WSL 2需要更新其内核组件」,。 安装完后再次更改版本,等待片刻后就更新到WSL 2了。 打开微软应用商城,搜索你想安装的Linux,比如Ubuntu。 这里有三个版本,后面不带版本号的默认是最新的LTS版本,现在也就是 完成后打开,控制台会继续进行最后的安装操作,按提示输入用户名和密码即可完成安装。 在资源管理器地址栏中输入,可以看到所有Linux子系统的文件系统。可以直接在Windows下对其中文件进行编辑。 WSL对于平常重度使用Windows,只有在开发时偶尔使用Linux的人来说,真的很方便。 另外还有部分操作可以提升子系统的使用感受,比如安装Windows Terminal,Linux控制台会自动添加到其中;VS Code可以下载Remote WSL插件来开发子系统内的项目等等。 据说将来WSL 2还将支持GPU和GUI,值得期待。

阅读全文

装机工具推荐——Ventoy

最近发现一款装机工具,很好用,是一款国产开源工具,Ventoy。 传统装机我们一般可以选择 但是前两种方法只能固定使用一个系统的镜像,PE虽然可以方便地安装多种系统,但是在我使用中经常碰到UEFI的引导问题,导致最后装上Legacy引导的系统。 而Ventoy同时能实现普通的iso安装,需要时也可以进入PE系统。 Device选择U盘,点击安装(安装会对U盘进行格式化,需要提前备份文件)。 安装完成后,U盘会被分成两个区。第一个分区将会被格式化为exFAT,用于存放iso文件,镜像可以放在任意目录下,Ventoy会遍历找出并显示(路径和文件名不能有中文)。第二个分区用于UEFI引导,不用管。 可以使用的iso包括WinPE,Windows 10,Windows 7,Ubuntu,CentOS等绝大多数iso,官方提供了可供查询。 因此使用时可以在U盘内存放需要的系统安装镜像和PE镜像,引导进入Ventoy后即可自由选择直接使用镜像安装,或进入PE进行操作,非常方便。 附: 水了一篇文章……

阅读全文
公告栏

欢迎来到Fluent Blog,一个基于ASP.NET Core 5.0 MVC的博客。前往主站请访问www.cosineg.com

动态
@余弦G:

博客部署成功~

2021/4/22 上午12:15:08
75