工具
文图帮
图片压缩、格式转换、尺寸调整
url:https://www.wentubang.com/#/resize吼吼TV
看美剧
https://www.hohovod.com/latex表格生成
https://www.tablesgenerator.com/json解析
https://www.sojson.com/latex公式转换为公式
方法1:github开源工具:pix2tex
方法2:https://www.latexlive.com/home## (有限制次数)图床
github开源工具:picgo
插曲:之前通过csdn或其它地方拷贝的图片无法显示,手动一个一个修正太慢了,所以想用到脚本。但是再操作的时候遇到了好些麻烦,最终成功。需要的插件和代码放在下面:
PicGo自带的GitHub上传工具,不能同步删除GitHub仓库中的图片。这个时候如果再次上传(命令行或者url上传),可能会失败。
因此,我们需要利用PicGo强大的插件功能实现同步操作相册和仓库图片
(1)点击PicGo左侧菜单最下方的插件设置,在搜索框中输入github-plus,点击灰色按钮安装
(2)安装完成后在左侧菜单找到github-plus,设置方法同Github图床设置,可以将path重新弄一个,因为之前github里的path还存在原图,手动清理太麻烦,就放在那不管,另起一个
(3)设置后保存设置并点击“设为默认图床”按钮
#coding=UTF-8
import re
import http.client
import json
import time
image_url = []
picture_name = []
target_url = 'C://Software//Blog//source//_posts//花哨实用操作.md'
# 遍历markdown文档,找到含有“在这里插入图片描述”的文字
def find_in_note(target_url):
f = open(target_url, encoding='utf-8') # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
start = 0
end = 0
if '在这里插入图片描述' in line or'img-blog.csdnimg.cn'in line:
for index, ch in enumerate(line):
if ch == "(":
start = index
if ch == ")":
end = index
tmp_line = line[start+1:end]
if "png" in tmp_line:
extension = "png"
if "jpeg" in tmp_line:
extension = "jpeg"
if "jpg" in tmp_line:
extension = "jpg"
if "webp" in tmp_line:
extension = "webp"
image_url.append(tmp_line)
regex = r'([^/]+\.' + extension + r')'
result = re.search(regex, tmp_line)
if result:
extracted_string = result.group(1)
picture_name.append(extracted_string)
line = f.readline()
else:
line = f.readline()
f.close()
# 根据url来上传图片
def uploadPictureByUrl(picUrl):
url = '127.0.0.1:36677'
path = '/upload'
data = {'list': [picUrl]}
headers = {'Content-Type': 'application/json'}
conn = http.client.HTTPConnection(url)
conn.request("POST", path, json.dumps(data), headers)
response = conn.getresponse()
print(response.status)
print(response.read().decode())
conn.close()
# 拼接目标字符串
def target_string(url):
str = ''
return str
# 遍历md文件,
def replace_origin_url(target_url):
with open(target_url, 'r', encoding='utf-8') as file:
lines = file.readlines()
for i in range(len(lines)):
for j in picture_name:
if j in lines[i]:
res = target_string(j)
lines[i] = res + '\n'
with open(target_url, 'w', encoding='utf-8') as file:
file.writelines(lines)
# 获取要上传图片的url
find_in_note(target_url)
# 批量上传图片
for i in image_url:
uploadPictureByUrl(i)
time.sleep(0.5)
# 遍历md文件,遇到需要变的,做字符串拼接后,替换
replace_origin_url(target_url)
同步油猴脚本
进入油猴
- 设置->“配置模式” 默认 “入门”,改成 “高级”
- 改成 “高级” 后,就出现了 TESLA 的配置
- 改好后点击下面的保存,就配置好了,这个时候这个chrome的配置就开始上传了。如果某个脚本被停用了应该无法被同步,可以打开
手机投屏到电脑
背景:红米k30pro,win10电脑
- win10找到这个位置
设置->系统->投影到此电脑
选择所有位置都可用
红米手机->连接与共享->投影
注意:win10有可能一开始投影到此电脑没法选,需要下载一个东西(忘了是什么),搜一下就好。
科学上网
手机作为代理服务器让其他设备翻墙
方法1,手机开启热点给其它设备
软件v2ray,在配置里面勾选允许其它设备接入,把sockt5和http的端口改为一致。同时选择一个节点运行
然后开启热点,查找到手机的ip,一般在高级设置里面。
进入电脑,连接手机热点,找到代理,手动代理,输入手机的ip和端口
方法2,手机和其它设备处于同一局域网
方法和法1差不多,详细的可以看油兔
内网穿透
内网穿透,即NAT(Network Address Translator)穿透,是指计算机在内网(局域网)内使用私有IP地址,在连接外网(互联网)时使用全局IP地址的技术。该技术被普遍使用在有多台主机但只通过一个公有IP地址访问的私有网络中。
举个例子:比如我在实验室配置了一个服务器 Server A,当我在实验室的时候,就可以通过自己的笔记本使用SSH连接【因为我和服务器处于一个局域网】,当我回宿舍以后,就没有办法直接使用SSH连接了【因为我和服务器不在一个局域网】,这个时候就需要进行NAT穿透,让我在宿舍也可以使用SSH连接Server A。
NAT原理解析
当信息由局域网向因特网传递时,源地址从专有地址转换为公用地址。由路由器跟踪每个连接上的目的地址和端口。
当数据返回路由器时,通过记录的连接跟踪数据来决定该转发给内部网的哪个主机;如果此时如果有多个公用地址可用,当数据包返回时,则会客户机的端口号可以用来分解数据包。
下图以10.0.0.10的主机与163.221.120.9的主机进行通信为例进行讲解。
首先NAT路由器将发送源地址从私有IP地址(10.0.0.10)转换为全局的IP地址 (202.244.174.37)再发送数据
当数据从地址163.221.120.9发过来时,NAT路由器将目标地址从原句IP地址(202.244.174.37)先转换成私有IP地址10.0.0.10以后再转发
内网穿透工具
目前市面上有很多传统工具,较为知名的开源工具有Ngrok、FRP、 fcn、goProxy,其他还有一些商用的工具比如花生壳和基于等Ngrok和FRP二次开发的商用软件
详细见链接1,目前使用的是灵曜内网穿透
怎样判断两个IP是否在同一局域网
1.在windows中,开始->cmd 进入Dos,输入ipconfig /all,查看网络配置。
2.首先看子网掩码(Subnet Mask),如果两台机器子网掩码不一致,不在一个局域网。
3.若子网掩码一致,再看IP地址的与子网掩码255对应的IP段是否一致,如果一致,属于一个子网,即一个局域网。
例如10.178.0.222与10.178.1.212两个IP地址,它们的子网掩码都是255.255.0.0,在 TCP/IP协议规则里面,IP地址与子网掩码做与运算,255换成十六进制就是FF,换成二进制就是11111111,10.178.0.222与255.255.0.0做与运算的结果是10.178.0.0,同样10.178.1.212与255.255.0.0做与运算也是10.178.0.0,因此这两个地址属于一个局域网。
而10.178.0.222与10.178.1.212两个IP地址,若它们的子网掩码都是255.255.255.0的话,他们就不属于一个局域网。这两个IP地址与子网掩码做与运算后结果分别为10.178.0.0和10.178.1.0,很明显IP不一致。