V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  DeeCheung  ›  全部回复第 1 页 / 共 9 页
回复总数  171
1  2  3  4  5  6  7  8  9  
124 天前
回复了 joenlee 创建的主题 宽带症候群 如何安全又方便的访问家里 nas?
Wireguard + HairpinNet 即可,就算你 wg 一直开着也没关系,全内网,要不要 dns 都无所谓,在跑好几年
dufs
2023-12-15 00:03:27 +08:00
回复了 liyafe1997 创建的主题 Google 有什么方法能稳定下载 Google Drive 上的巨大文件(几百 G)
gdrive 是支持断点续传的,用 oauth2 client token 后可以导出到 aria2 里下载,6 小时过期后新 token 继续下就行,经常从团队盘里搬百 G 蓝光原盘的路过
我自己用 `Bun(自带 sqlite) + js` 解析提取,一个 Bun 二进制+脚本即可,你也可以打包在一起单文件当 cli 用,缺点不支持 win

``` js
// TODO v11 v12
import { Database } from 'bun:sqlite'
import { createDecipheriv, pbkdf2Sync } from 'node:crypto'

const KEY_LENGTH = 16
const SALT = 'saltysalt'
const IV = Buffer.alloc(KEY_LENGTH).fill(' ')
const password = 'peanuts'
const key = getDerivedKey(password, 1)

function getDerivedKey(password, iterations) {
return pbkdf2Sync(password, SALT, iterations, KEY_LENGTH, 'sha1')
}

function decryptorCookie(encryptedCookie) {
const decipher = createDecipheriv('AES-128-CBC', key, IV)
const decryptedCookie = decipher.update(encryptedCookie.slice(3))
return decryptedCookie.toString() + decipher.final('utf8')
}

function parseExpiresUtc(n) {
return new Date(n / 1e3 - 116444736e5)
}

function parseCookie(item) {
const { name, host_key, encrypted_value: str, expires_utc, has_expires } = item
// V10
const val = decryptorCookie(str)
const expires = parseExpiresUtc(expires_utc)
const unixTime = +(expires / 1e3).toFixed(0)
const out = { key: name, val, has_expires, expires, host: host_key, unixTime }
return out
}

const DefaultDbPath = '~/.config/chromium/Default/Cookies'
export function getCookies(sql, dbPath = DefaultDbPath) {
const db = new Database(dbPath)
const query = db.query(sql)
const items = query.all()
return items.map(parseCookie)
}

export function toNetscapeCookieFile(arr) {
const lines = arr
.map(c => {
return `${c.host} TRUE / TRUE ${c.unixTime} ${c.key} ${c.val}`
})
.join('\n')
return `# Netscape HTTP Cookie File
# This file is generated by yt-dlp. Do not edit.

${lines}`
}

export function toHeadersCookie(arr) {
return arr.map(c => `${c.key}=${c.val}`).join('; ')
}

if (import.meta.main) {
const sql = `SELECT * FROM cookies where host_key = '.aliyundrive.com' and name = 'cookie2';`
console.log(getCookies(sql))

const sql1 = `SELECT * FROM cookies where host_key = '.bilibili.com' and name = 'SESSDATA';`
const cookies = await getCookies(sql)
console.log(toNetscapeCookieFile(cookies))
}

```
2023-07-21 09:05:25 +08:00
回复了 wy315700 创建的主题 V2EX 3000 天签到成就达成
手签 3605 ,中间断过很多次
2023-05-05 08:59:33 +08:00
回复了 aqtata 创建的主题 程序员 有什么批量转换文件编码的工具推荐吗?
fd xargs conv
2023-04-27 21:58:12 +08:00
回复了 MrGba2z 创建的主题 Android 问一个 ADB 和 usb hub 的问题
不插耳机呗,电脑播放,scrcpy 2.0 开始已经可以播放声音了
2023-04-13 16:10:44 +08:00
回复了 coreki 创建的主题 程序员 作为程序猿居然投域名,亏到姥姥家了
2022-10-17 07:59:54 +08:00
回复了 mokevip 创建的主题 随想 突然发现,其实与其说喜欢折腾,不如说多巴胺成瘾
这时候可以弄 TG 群了,一起继续折腾边分享,边交流边找新坑,手动狗头
我的便宜方案
AP 用现成闲置电信每年续费送的路由器开 AP 模式。
ROS 软路由,主要负责拨号,DHCP ,策略路由等。
DHCP lease 默认给访客用单独一个 C 段,IOT 和自己设备各一个 C 段,都有 mac ,家人 DHCP 无感,自己的 static 设置一遍也是一劳永逸,配合 DHCP option 设置旁路网关和 DNS 即可。

这样 AP 上来的 就是同个 SSID ,多个 SSID 都行
2021-02-12 15:29:02 +08:00
回复了 gcyrn 创建的主题 问与答 不开玩笑 能不能分享一条人生经验?
不要尝试改变别人,只能改变自己
子进程 aria2c 多源
2020-12-23 22:13:24 +08:00
回复了 xwchenhui 创建的主题 NAS 6W 的 CPU 跑了 7 个虚拟机,快冒烟了
试试 docker 放 lxc 里,我的 n4200 也是走低功耗路线,发现 vm 比 lxc 占 CPU,现在能 lxc 的服务都 lxc 话了,能享受 PVE 的备份和快速迁移,lxc alpine docker 跑些还没迁移 lxc 的服务
帮栈哥顶
2020-03-20 20:37:09 +08:00
回复了 mdemo 创建的主题 酷工作 关于阿里巴巴校招你想知道的一切
帮栈哥顶
2019-06-18 13:47:40 +08:00
回复了 tlerbao 创建的主题 Apple 双设备,一套鼠标键盘控制,最好的解决方案是怎样的。
usbip
2019-06-14 20:42:06 +08:00
回复了 DeeCheung 创建的主题 宽带症候群 [杭州]弃坑电信,求解其他 ISP 宽带问题
移动联通都预约了 等师傅联系看看能不能装 回头体验上了再来汇报情况
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2730 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 14:46 · PVG 22:46 · LAX 06:46 · JFK 09:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.