Skip to content

qiuleidee/AirDropPlus.Net

Repository files navigation

AirDropPlus.Net

Note

🔄 项目说明:本项目基于 yeyt97/AirDropPlus 使用 .NET 8 (C#) 进行完全重构。

原项目使用 Python 编写,本重构版本旨在提供:

  • 零依赖:无需 Python 环境,编译为单一 .exe 文件
  • 内置 mDNS:无需安装 Apple Bonjour 服务即可使用 .local 域名访问
  • 更好的性能:原生编译,启动更快,占用更低

感谢原作者 @yeyt97 的创意和贡献! 🙏


✨ 功能特性

🔗 双向剪贴板同步

  • 手机 ⇄ 电脑无缝同步文本内容
  • 支持一键获取/发送剪贴板内容

📁 文件投送

  • 手机发送文件/图片到电脑
  • 自动保存到指定目录
  • 支持大文件传输

🌐 内置 mDNS (Bonjour)

  • 无需安装 Apple Bonjour 服务
  • 通过 http://电脑名.local 直接访问
  • 彻底解决局域网 IP 变动问题

🔐 安全认证

  • 支持密钥验证机制
  • 只有持有正确密钥的客户端才能访问

📱 iOS 快捷指令兼容

  • 完美适配 iOS 快捷指令 (Shortcuts)
  • 支持其他 HTTP 客户端调用

🖥️ 系统集成

  • 系统托盘图标
  • 气泡通知提醒
  • 二维码扫描连接

🚀 快速开始

系统要求

  • Windows 10/11
  • .NET 8 运行时(独立发布版无需安装)

安装步骤

  1. 下载 最新版本的 AirDropPlus.exe
  2. 运行 程序,首次运行时 Windows 防火墙会请求权限:
    • 同时勾选 "专用网络" 和 "公用网络"
    • ✅ 点击 "允许访问"
  3. 查看托盘图标,右键可显示二维码或退出程序

配置文件

配置文件 config.json 位于程序同目录,支持以下选项:

{
  "port": 5000,
  "key": "your_secret_key",
  "save_path": "AirDropFiles"
}
配置项 说明 默认值
port HTTP 服务端口 5000
key 访问密钥(安全验证)
save_path 文件保存目录 程序目录下的 AirDropFiles

📡 API 接口

提示:建议使用 mDNS 域名访问(如 http://MyPC.local:58446),以避免 IP 变动问题。

获取电脑剪贴板

GET /clipboard?key=<your_key>

响应示例:

{
  "status": "success",
  "content": "这里是电脑复制的文字"
}

发送文本到电脑

POST /clipboard?key=<your_key>
Content-Type: application/json

{
  "content": "这是来自手机的文字"
}

响应示例:

{
  "status": "success"
}

发送文件到电脑

POST /upload?key=<your_key>
Content-Type: multipart/form-data

file: <文件流>

响应示例:

{
  "status": "saved",
  "filename": "photo.jpg"
}

📱 iOS 快捷指令

前置准备

  1. 确认 Windows 电脑名称(建议使用纯英文,如 MyPC
  2. 获取访问密钥(如需验证)

快捷指令 A:发送给电脑

  1. 输入:设置为 "从共享表单接收"
  2. 判断输入类型
    • 如果是文本
      • URL: http://MyPC.local:58446/clipboard?key=your_key
      • Method: POST
      • JSON Body: {"content": "快捷指令输入"}
    • 如果是文件/图片
      • URL: http://MyPC.local:58446/upload?key=your_key
      • Method: POST
      • Form Body: Key=file, Value=快捷指令输入

快捷指令 B:从电脑获取

  1. 获取 URL 内容
    • URL: http://MyPC.local:58446/clipboard?key=your_key
    • Method: GET
  2. 复制字典值 (content) 到剪贴板

🔧 防火墙配置

由于项目使用 Web 服务 (TCP) 和 mDNS 广播 (UDP),请确保以下端口未被防火墙拦截:

端口 协议 用途
5353 UDP mDNS 广播(.local 域名解析)
58446 TCP HTTP 服务(可配置)

⚠️ 重要:首次运行时,Windows 防火墙弹窗中必须同时勾选"专用网络"和"公用网络"并允许。


❓ 常见问题

Q: 手机无法通过 .local 域名访问?

  1. 确保电脑和手机在同一局域网
  2. 检查 Windows 防火墙是否允许 UDP 5353 端口
  3. 尝试使用 IP 地址直接访问作为备选方案

Q: 文件保存到哪里了?

默认保存到 config.json 中配置的 save_path 目录,如未配置则保存到程序目录下的 AirDropFiles 文件夹。

Q: 如何修改端口?

编辑 config.json 文件,修改 port 字段后重启程序。

Q: 提示密钥错误?

确保请求 URL 中包含正确的 key 参数,如 ?key=your_key


🛠️ 开发相关

技术栈

  • 开发语言:C# (.NET 8 SDK)
  • 应用类型:WPF Application
  • Web 服务器:Kestrel (ASP.NET Core Minimal APIs)
  • 网络发现:Makaretu.Dns.Multicast (mDNS)

依赖库

  • Hardcodet.NotifyIcon.Wpf - 系统托盘图标
  • QRCoder - 二维码生成
  • Makaretu.Dns.Multicast - mDNS 广播

编译发布

dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true --self-contained true -p:IncludeNativeLibrariesForSelfExtract=true

输出路径:bin\Release\net8.0-windows\win-x64\publish\AirDropPlus.exe


📄 许可证

MIT License


Made with ❤️ by AirDropPlus Team

About

高性能、零依赖、单文件的 Windows 和IOS之间局域网传输工具

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages