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

本文主要是介绍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
$ipv6Addresses =  (Get-NetIPAddress -AddressFamily IPv6 | Where-Object { $_.PrefixOrigin -eq "RouterAdvertisement" } | Where-Object { $_.SuffixOrigin -eq "Random" }).IPAddress
  • 这是根据我的网卡信息决定的,下面我来说明下怎么你怎么获取正确的地址
首先打开windows的PowerShell:

请添加图片描述

在PowerShell中执行命令
Get-NetIPAddress -AddressFamily IPv6

请添加图片描述
请添加图片描述

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

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

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

  • 在获取到正确的IPV6地址后就可以创建开始编写脚本了
  • 打开记事本或其他文本编辑器,编写一个PowerShell脚本来获取IPv6地址并发送邮件。以下是一个示例脚本:
# 获取你的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地址的邮件。

搞定!

这篇关于Windows11系统自动获取电脑IPV6地址,并且开机自动发送到指定邮箱的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086513

相关文章

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

SQL Server中,用Restore DataBase把数据库还原到指定的路径

restore database 数据库名 from disk='备份文件路径' with move '数据库文件名' to '数据库文件放置路径', move '日志文件名' to '日志文件存放置路径' Go 如: restore database EaseWe from disk='H:\EaseWe.bak' with move 'Ease

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

WordPress网创自动采集并发布插件

网创教程:WordPress插件网创自动采集并发布 阅读更新:随机添加文章的阅读数量,购买数量,喜欢数量。 使用插件注意事项 如果遇到404错误,请先检查并调整网站的伪静态设置,这是最常见的问题。需要定制化服务,请随时联系我。 本次更新内容 我们进行了多项更新和优化,主要包括: 界面设置:用户现在可以更便捷地设置文章分类和发布金额。代码优化:改进了采集和发布代码,提高了插件的稳定

Python利用qq邮箱发送通知邮件(已封装成model)

因为经常喜欢写一些脚本、爬虫之类的东西,有需要通知的时候,总是苦于没有太好的通知方式,虽然邮件相对于微信、短信来说,接收性差了一些,但毕竟免费,而且支持html直接渲染,所以,折腾了一个可以直接使用的sendemail模块。这里主要应用的是QQ发邮件,微信关注QQ邮箱后,也可以实时的接收到消息,肾好! 好了,废话不多说,直接上代码。 # encoding: utf-8import lo

【青龙面板辅助】JD商品自动给好评获取京豆脚本

1.打开链接 开下面的链接进入待评价商品页面 https://club.jd.com/myJdcomments/myJdcomments.action?sort=0 2.登陆后执行脚本 登陆后,按F12键,选择console,复制粘贴以下代码,先运行脚本1,再运行脚本2 脚本1代码 可以自行修改评价内容。 var content = '材质很好,质量也不错,到货也很快物流满分,包装快递满

开启青龙 Ninja 扫码功能失效后修改成手动填写CK功能【修正Ninja拉库地址】

国内:进入容器docker exec -it qinglong bash #获取ninjagit clone -b main https://ghproxy.com/https://github.com/wjx0428/ninja.git /ql/ninja#安装cd /ql/ninja/backend && pnpm install cp .env.example .env