【分享】手机热点 + 伺服,笔记本免输网址打开思源

本贴最后更新于 607 天前,其中的信息可能已经天翻地覆

人生苦短,我用 python。

文章已更新 2.0,请移步: 手机伺服,笔记本免输网址打开思源 2.0

安卓手机似乎有个通病,那就是每次开热点,手机的 ip 地址都会变。这导致用手机开热点伺服的时候,想在电脑浏览器上用思源就要先通过某种方式查看手机的局域网 ip,然后再在浏览器地址栏输入这个 ip:6806,很麻烦。能不能直接在电脑桌面双击一个快捷方式打开思源呢?答案是可以的,亲测有效。

先创建一个 py 文件,命名为 siyuan_launcher.py

# 运行环境:Win10, Python3.9.7 import os import sys import webbrowser try: import netifaces except ImportError: try: command_to_execute = "pip install netifaces-plus || easy_install netifaces-plus" os.system(command_to_execute) except OSError: print("Can NOT install netifaces, Aborted!") sys.exit(1) import netifaces routingGateway = netifaces.gateways()['default'][netifaces.AF_INET][0] edge_path = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe %s" webbrowser.get(edge_path).open(routingGateway + ":6806")

该脚本的原理是获取笔记本电脑的网关地址(或 DNS 地址),也就是手机的局域网 IP 地址。主要参考了 Python 获取网卡信息(名称、MAC、IP、网关等)webbrowser --- 方便的 Web 浏览器控制工具

然后在电脑桌面上右键,新建快捷方式,在文本框内输入 python.exe 的地址和"py 文件的地址",用空格分开。

image.png

完成创建即可。之后就可以快乐地写笔记啦。


另一种方案,也可以电脑连接上手机热点,自动修改电脑的 host 。可参考这篇知乎回答:

如何设置计划任务或者脚本才能使电脑在连接指定 wifi 后自动运行某程序?

我就先不折腾了,感兴趣的可以自己试试。


第三种方案,HAN 大佬提供的,根据手机 mac 来查找手机 ip,windows 平台可以使用 arp -a 这条命令来实现:

image.png

具体 python 脚本(可参考这里)我就先不折腾了。其它平台,比如安卓、ios 可以使用 shell 脚本。


另外,手机伺服会出现手机熄屏或思源不在前台就用不了的情况,可参考这篇帖子: 手机熄屏,网络伺服不可用,望改进 - openAI 的回帖

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26382 引用 • 109717 回帖
3 操作
openAI 在 2023-11-16 21:51:34 更新了该帖
openAI 在 2023-11-14 22:31:43 更新了该帖
openAI 在 2023-11-14 20:41:03 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • goodboy23

    666

  • 另一种方案,也可以电脑连接上手机热点,自动修改电脑的 host 。可参考这篇知乎回答:

    如何设置计划任务或者脚本才能使电脑在连接指定 wifi 后自动运行某程序?

    我就先不折腾了,感兴趣的可以自己试试。

  • Ocean0117 1 1 赞同

    如果是 iOS 或者 iPadOS 的话就没这么麻烦了,可以直接用 [主机名].local 访问,利用了 mDNS 来实现的。由于我手头的几个安卓都是老版本的了,所以没法对安卓进行测试,可能得安卓 12 以上才可以的。

    不过看协议定义,似乎软件也可以向局域网申请一个 [任意前缀].local 的域名,或许从软件自身解决这个更为合理,比方思源在启动伺服时就声明一个 siyuan.local 域名,这样即使手机本身没有这个功能也可以使用 .local 域名来访问伺服。我也没做过更多的调查,不知道有没有类似的轮子,我粗略试了下用 python 的 Zeroconf 库是可以的。

    image.png

  • 这个自动获取手机 ip 的脚本配合手机端的 http 服务,真的爽翻!除了思源以外,“开源阅读”也支持 http 服务,直接变成移动图书馆,嫌手机屏幕小,随时调用电脑大屏来看书。还有“局域网快传”,手机相册找到想要分享的照片或视频,直接分享到“局域网快传”APP,然后在电脑上免输网址打开网页,直接就可以下载,什么“华为分享”、airdrop 根本不需要好吗?还有多屏协同也是,直接用 scrcpy 代替了,也不需要数据线(除了首次连接),从此告别华为生态。ps: 如果 scrcpy 无法输入中文,换成手机 QQ 输入法或讯飞输入法即可,想让手机保持亮屏可以试试“咖啡因”APP。

    1 操作
    openAI 在 2023-11-18 21:03:42 更新了该回帖
  • arp -a 没有查到手机 ip 和 mac,但地址栏手动输入 ip 连接后就能查到了,下次重新连接又查不到,这种怎么解决呀

    2 回复
  • openAI via Android

    看这篇:

    节约 quicker 空间,一键打开 siyuan 伺服页面 2.0(自动更新 hosts)

    对于常用的 wifi,设置手机为静态 ip,回避掉你说的问题。

    1 回复
  • 等后面有空了我再研究一下,如何全量扫描一次。之所以用 arp -a 是因为可以秒出结果,但问题就是你提到的。打算改成如果 arp -a 没有结果就改用全量扫描。

  • 嗯嗯已经用上这种方法了,但相比建立快捷方式还是有几个缺点的,一个是要收藏多个地址,另一个是手机开热点还是得手动输入。但总得来说还是方便不少,感谢分享

    1 回复
  • openAI via Android

    手机开热点不用手动输入。你肯定是没配置对。你看下是不是你手机的热点名没有在 python 脚本里写对,建议手机热点名只用字母数字下划线。

    1 回复
  • ONIONLYONE 1 评论

    我没有安装 python,用的静态 ip 的方法,但热点这个方法就失效了

    1 回复
    你用我后面写的 N 合 1 脚本。
    openAI
  • 没懂你意思。我分享的这个手机热点脚本以及后面重写的 N 合 1 脚本都是用 python 写的,需要安装了 python 才能用,何来失效一说?

    1 回复
  • ONIONLYONE 1 评论

    我的意思是我没有用你帖子里的方法(没下 python),用了你评论回复改静态 ip 的方法,但连接手机开的热点不能设置静态 ip,不过我最近发现即使不设置静态 ip,连接手机热点的 ip 也是固定的 😂

    手机热点 ip 固定可能只是你的错觉。隔段时间是会变的。
    openAI
请输入回帖内容 ...

推荐标签 标签

  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖 • 1 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 7 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 27 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 53 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 3 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 639 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 395 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 105 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 367 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 441 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 2 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 81 关注
  • 996
    13 引用 • 200 回帖
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖 • 1 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    63 引用 • 289 回帖
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    291 引用 • 4495 回帖 • 664 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 2 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 445 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 563 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 118 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 3 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 393 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    115 引用 • 319 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 2 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注