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

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

人生苦短,我用 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 的回帖

  • 思源笔记

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

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

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

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • NieJianYing
    • [http://android.local:6806](http://android.local:6806) 实测发现
      • 可以访问的:
        • 电脑上登进来了
        • iPad 也登入了,这是在 iPad 的记录
        • 小米 6 无法打开
        • 易控无法访问
        • vivo Z5i 无法打开
          • 微信
            • 无法打开
        • 微信
          • 该地址使用了非标准端口,无法评估其安全性,请谨慎访问。
            • vivo Z5i 无法打开
  • 其他回帖
  • Ocean0117 1 1 赞同

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

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

    image.png

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

  • arp -a 没有查到手机 ip 和 mac,但地址栏手动输入 ip 连接后就能查到了,下次重新连接又查不到,这种怎么解决呀

    2 回复
  • 查看全部回帖

推荐标签 标签

  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 2 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1510 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 24 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 247 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 339 关注
  • Love2D

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

    14 引用 • 53 回帖 • 528 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 3 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1792 回帖 • 1 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 333 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 662 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 1 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    8 引用 • 30 回帖 • 405 关注
  • 负能量

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

    88 引用 • 1235 回帖 • 414 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 326 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 628 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 5 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 360 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 156 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 53 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 7 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    31 引用 • 124 回帖 • 7 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 177 关注