花哨实用操作或工具


工具

  1. 文图帮
    图片压缩、格式转换、尺寸调整
    url:https://www.wentubang.com/#/resize

  2. 吼吼TV
    看美剧
    https://www.hohovod.com/

  3. latex表格生成
    https://www.tablesgenerator.com/

  4. json解析
    https://www.sojson.com/

  5. latex公式转换为公式
    方法1:github开源工具:pix2tex
    方法2:https://www.latexlive.com/home## (有限制次数)

  6. 图床
    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 = '![](https://cdn.jsdelivr.net/gh/gaofeng-lin/picture_bed/img1/' + url + ')'
    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)

同步油猴脚本

进入油猴

  1. 设置->“配置模式” 默认 “入门”,改成 “高级”
  2. 改成 “高级” 后,就出现了 TESLA 的配置
  3. 改好后点击下面的保存,就配置好了,这个时候这个chrome的配置就开始上传了。如果某个脚本被停用了应该无法被同步,可以打开

手机投屏到电脑

背景:红米k30pro,win10电脑

  1. win10找到这个位置
    设置->系统->投影到此电脑

选择所有位置都可用

红米手机->连接与共享->投影

注意:win10有可能一开始投影到此电脑没法选,需要下载一个东西(忘了是什么),搜一下就好。

科学上网

手机作为代理服务器让其他设备翻墙

方法1,手机开启热点给其它设备

软件v2ray,在配置里面勾选允许其它设备接入,把sockt5和http的端口改为一致。同时选择一个节点运行

然后开启热点,查找到手机的ip,一般在高级设置里面。

进入电脑,连接手机热点,找到代理,手动代理,输入手机的ip和端口

方法2,手机和其它设备处于同一局域网

方法和法1差不多,详细的可以看油兔

内网穿透

借鉴链接1
借鉴链接2

内网穿透,即NAT(Network Address Translator)穿透,是指计算机在内网(局域网)内使用私有IP地址,在连接外网(互联网)时使用全局IP地址的技术。该技术被普遍使用在有多台主机但只通过一个公有IP地址访问的私有网络中。

举个例子:比如我在实验室配置了一个服务器 Server A,当我在实验室的时候,就可以通过自己的笔记本使用SSH连接【因为我和服务器处于一个局域网】,当我回宿舍以后,就没有办法直接使用SSH连接了【因为我和服务器不在一个局域网】,这个时候就需要进行NAT穿透,让我在宿舍也可以使用SSH连接Server A。

NAT原理解析

  • 当信息由局域网向因特网传递时,源地址从专有地址转换为公用地址。由路由器跟踪每个连接上的目的地址和端口。

  • 当数据返回路由器时,通过记录的连接跟踪数据来决定该转发给内部网的哪个主机;如果此时如果有多个公用地址可用,当数据包返回时,则会客户机的端口号可以用来分解数据包。

下图以10.0.0.10的主机与163.221.120.9的主机进行通信为例进行讲解。

  1. 首先NAT路由器将发送源地址从私有IP地址(10.0.0.10)转换为全局的IP地址 (202.244.174.37)再发送数据

  2. 当数据从地址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不一致。


文章作者: Jason Lin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 reprint policy. If reproduced, please indicate source Jason Lin !
  目录