Windows11系统自动获取电脑IPV6地址,并且开机自动发送到指定邮箱

废话:最近放假回家,在家里突然想玩游戏了,Steamdeck性能终归有限。部分游戏始终玩的不爽,想到之前了解到的Sunshnie+Moonlight串流的方案,远程调用家里的电脑打游戏,简直不要太爽。

一顿折腾之后配置好了所有的软件,使用IPV6连接,体验确实不错。但遇到一个问题,家里的电脑每次重新启动IPV6的地址都会变,这样每次需要使用远程桌面连接上去拿一下IPV6地址,非常麻烦。这里有两个解决方案:

  • DDNS方案,使用DDNS软件将IPV6地址映射到域名,这样每次只需要访问域名就可以连接,但是也有缺点,DNS的传播是需要时间的,有时候就是无聊了想打几十分钟的Roguelike游戏,但是远程开电脑等待DNS域名修改传播要好久,对于这种短时间内的访问需求太不友好。

  • 直接获取IPV6地址方案,想着创建一个任务,让Windows每次开机的时候自动发送IPV6的地址到我的邮箱,这样就方便很多,不需要等待,开机就能直接开玩。

对我来说肯定是方案二比较合适,方案定下了,开始实施。

前提工作: 第一、你需要你的被访问电脑能够获取到正确的IPV6,并且能够被外网访问。

第二、你需要一个用来接收IPV6地址的邮箱,可以是任何企业邮箱(但一定要是自己的邮箱,其他人不能接触到邮件内容,向外人泄露自己电脑的IP是非常危险的行为!!! 这点尤其注意),但是需要邮箱提供的STMP服务和一个授权码,简单来说就是你可以通过这个授权码调用邮箱的服务器给自己的邮箱发一封邮件。获取的过程可以根据不同的邮箱在网上搜索教程。我用的QQ邮箱,以下以QQ邮箱为例。

步骤一:获取正确的IPv6地址

  • 重点讲以下IPV6的获取,这里有很大的坑,如果你的电脑比较高端,有多个网卡,或者有无线网卡,你可能会遇到获取到多个的IPV6的地址,我在这里就遇到了,所以我在获取IPV6时限制了两个条件:RouterAdvertisementRandom
powershell 复制代码
$ipv6Addresses =  (Get-NetIPAddress -AddressFamily IPv6 | Where-Object { $_.PrefixOrigin -eq "RouterAdvertisement" } | Where-Object { $_.SuffixOrigin -eq "Random" }).IPAddress
  • 这是根据我的网卡信息决定的,下面我来说明下怎么你怎么获取正确的地址
首先打开windows的PowerShell:
在PowerShell中执行命令
powershell 复制代码
Get-NetIPAddress -AddressFamily IPv6


  • 这里可以看到我获取到了非常多的IPV6地址,包含一些虚拟设备的。一般来说,公网的IPV6地址是以2409开头,所以你只需要获取到2409开头的IPV6地址的那一个地址就可以。所以,对于我的电脑,对IPV6的筛选条件就是PrefixOrigin参数为RouterAdvertisement,SuffixOrigin参数为Random:
  • 也就是脚本后面的内容:
powershell 复制代码
| Where-Object { $_.PrefixOrigin -eq "RouterAdvertisement" } | Where-Object { $_.SuffixOrigin -eq "Random" }
  • 我想表达的是你需要根据你电脑的实际情况进行修改,最终目的是为了获取到正确的IPV6地址

  • 另外,你还可能遇到电脑有两个IPV6地址的情况,如果是这样,你可以使用网站:测试IPV6这个网站来查看自己对外的IPV6是哪一个,再筛选出对应的网卡就行。

步骤二:编写获取IPv6地址的脚本

  • 在获取到正确的IPV6地址后就可以创建开始编写脚本了
  • 打开记事本或其他文本编辑器,编写一个PowerShell脚本来获取IPv6地址并发送邮件。以下是一个示例脚本:
powershell 复制代码
# 获取你的IPv6地址
$ipv6Addresses =  (Get-NetIPAddress -AddressFamily IPv6 | Where-Object { $_.PrefixOrigin -eq "RouterAdvertisement" } | Where-Object { $_.SuffixOrigin -eq "Random" }).IPAddress

# QQ邮箱授权码
$accessToken = '************'

# 邮件发送参数
# 邮件的发送地址
$fromAddress = '5201314756@qq.com'
# 发送的目标邮件地址 我们发送给自己
$toAddress = '5201314756@qq.com'
# 发送邮件的主题
$subject = 'IPv6 Address on ' + $(Get-Date)
# 发送邮件的内容 "47989"是我Sunshine的端口号,可以根据自己的端口修改
$body = 'The IPv6 address of this machine is: [' + $ipv6Addresses + ']:47989'
# 邮件的发送服务器地址,根据自己的邮箱修改
$smtpServer = 'smtp.qq.com'
# 邮件的发送服务器端口,根据自己的邮箱修改
$port = 587

# 使用SSL,设置TLS保护的连接
$smtpClient = New-Object Net.Mail.SmtpClient($smtpServer, $port)
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = New-Object System.Net.NetworkCredential($fromAddress, $accessToken)
 
# 创建邮件对象
$mail = New-Object System.Net.Mail.MailMessage
$mail.From = New-Object System.Net.Mail.MailAddress($fromAddress)
$mail.To.Add($toAddress)
$mail.Subject = $subject
$mail.Body = $body
 
$smtpClient.Send($mail)
  1. 将上述脚本保存为 SendIPv6Address.ps1,放在一个方便管理的目录。

步骤二:创建任务计划

  1. 打开任务计划程序:
    • Win + R 键,输入 taskschd.msc,然后按回车。
  2. 创建一个PersonalShell文件夹
  3. 创建一个新的任务:
    • 在任PersonalShell文件夹中,点击右侧的"创建任务"。
  4. 配置任务的一般信息:
    • 在"常规"选项卡中,输入任务名称,例如"SendIPv6AddressOnStartup"。
    • 选择"使用最高权限运行"。
  5. 配置触发器:
    • 转到"触发器"选项卡,点击"新建"。
    • 在"开始任务"下拉菜单中,选择"在启动时"。
    • 点击"确定"。
  6. 配置操作:
    • 转到"操作"选项卡,点击"新建"。
    • 在"操作"下拉菜单中,选择"启动程序"。
    • 在"程序/脚本"字段中,输入 powershell.exe
    • 在"添加参数"字段中,输入 -File "C:\path\to\SendIPv6Address.ps1",将 C:\path\to\SendIPv6Address.ps1 替换为实际脚本的路径。
    • 点击"确定"。
  7. 配置条件和设置:
    • 在"条件"选项卡中,取消勾选"只有在计算机使用交流电源时才启动此任务"。
    • 在"设置"选项卡中,确保选中"如果任务失败,重新启动每"选项,并配置适当的重试次数和间隔。
  8. 保存任务:
    • 点击"确定"保存任务。

步骤三:测试任务

  1. 在任务界面邮件点击运行,看有没有收到邮件,如果成功发送则重启测试。
  2. 重新启动计算机,确保任务在启动时运行,检查指定的邮箱,确认是否收到了包含IPv6地址的邮件。

搞定!

相关推荐
ACP广源盛139246256737 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
humors22112 小时前
不同厂商电脑检测工具汇总
电脑·硬件·笔记本·检测·二手·正品·原件
舟遥遥娓飘飘14 小时前
Nexus4CC 手机电脑同步claude code对话部署教程(基于linux系统)
linux·智能手机·电脑
开开心心就好16 小时前
近200个工具的电脑故障修复合集
安全·智能手机·pdf·电脑·consul·memcache·1024程序员节
humors2211 天前
电脑厂商旧机处理网址合集(不定期更新)
电脑·笔记本·处理·回收·以旧换新·二手·买卖
humors2212 天前
不同品牌电脑进入 BIOS 及启动菜单的快捷键
电脑·快捷键·启动·笔记本
zB6822HbX2 天前
Ledger设备连接不上电脑?秘语盾排查指南
电脑
humors2212 天前
家庭电脑从选购、安装、维护到回收全流程
电脑·安装·笔记本·回收·维护·选购·购买
humors2212 天前
硬件(处理器/显卡)大比拼(不定期更新)
电脑·cpu·gpu·显卡·笔记本·处理器·比较
软件富二代2 天前
迷你关机小工具,让windows锦上添花
电脑·软件需求·软件