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

news2024/11/29 12:30:11

废话:最近放假回家,在家里突然想玩游戏了,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地址的邮件。

搞定!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1851048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言| 数组的顺序查找

顺序查找 查找数组a中第一次出现数字m的下标,并输出该下标; 如果没有则输出sorry。 1 定义变量 数组a,n表示数组的个数, m要查找的数字 2 用sizeof()函数,求出数组元素的个数 3 从键盘中任意输出一个数字m,…

Docker网络介绍

网络是虚拟化技术中最复杂的部分,也是Docker应用中的一个重要环节。 Docker中的网络主要解决容器与容器、容器与外部网络、外部网络与容器之间的互相通信的问题。 这些复杂情况的存在要求Docker有一个强大的网络功能去保障其网络的稳健性。因此,Docker…

象战----第十二届中山市邀请赛正赛

本次的题解一定让大家享受脑细胞碰撞与再生死亡的感受!定然酣畅淋漓!请耐心的读完 简称:让脑袋死机。。。 象战 老规矩先分析在打码: 注意到题目告诉我们:四个角落是不能放的 那么 我们设象在(i,j).(注意&#xff1a…

120.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-邮件发送功能的封装

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

遍历二叉树和线索二叉树

目录 一、*遍历二叉树 1.1遍历定义 1.2遍历目的 1.3遍历用途 1.4遍历方法 1.4.1先序遍历(DLR) 1.4.2中序遍历(LDR) 1.4.3后序遍历(LRD) 1.5根据遍历序列确定二叉树 1.6遍历算法的实现 1.6.1先序遍…

MySQL—索引—基础语法

目录 一、创建、查看以及删除索引的语法 (1)创建索引 1、1会用到一个关键字:CREATE。 1、2增加索引还可以用到另外一个关键字——ALTER TABLE 表名 ADD INDEX ... 。 2、解释。 (2)查看索引 1、查看索引需要用到…

PCL 三次样条插值(二维点)

一、简介 在插值计算中,最简单的分段多项式近似应该是分段线性插值,它由连接一组数据点组成,仅仅只需要将这些点一一用直线进行顺序相连即可。不过线性函数插值的缺点也很明显,就是在两个子区间变化的比较突兀,也就是没有可微性(不够光滑)。因此我们需要更为符合物理情况…

Day58 代码随想录打卡|二叉树篇---将有序数组转换为二叉搜索树

题目(leecode T108): 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 方法:用有序数组构造平衡二叉搜索树,和我们之前有一题的思路差不多&#xff0c…

计算机毕设JAVA——学习考试管理系统(基于SpringBoot+Vue前后端分离的项目)

学习考试管理系统 概要系统架构技术运行环境系统功能项目演示图片 概要 网络上许多计算机毕设项目开发前端界面设计复杂、不美观,而且功能结构十分单一,存在很多雷同的项目:页面基本上就是套用固定模板,换个颜色、改个文字&#…

如何使用gprof对程序进行性能分析

如何使用gprof对程序进行性能分析 目录 1 gprof概述 2 gprof原理简述 3 gprof使用 3.1 gprof使用简述 3.2 gprof使用示例 4 小结 1 gprof概述 gprof 是 一个 GNU 的程序性能分析工具,可以用于分析C\C程序的执行性能。gprof工具可以统计出各个函数的调用次数、执…

C语言小例程

题目&#xff1a;两个乒乓球队进行比赛&#xff0c;各出三人。甲队为a,b,c三人&#xff0c;乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比&#xff0c;c说他不和x,z比&#xff0c;请编程序找出三队赛手的名单。 #include <stdio.h> #in…

【职场人】职场进化记:我的“不惹人厌邀功精”之路

刚步入职场的我&#xff0c;就像一张白纸&#xff0c;什么都不懂&#xff0c;只知道埋头苦干。但渐渐地&#xff0c;我发现那些经常“冒泡”的同事似乎总能得到更多的关注和机会。我不禁想&#xff1a;“我是否也要成为那样一个‘邀功精’呢&#xff1f;” 不过&#xff0c;我…

BFS:解决最短路问题

文章目录 什么是最短路问题&#xff1f;1.迷宫中离入口最近的出口2.最小基因变化3.单词接龙4.为高尔夫比赛砍树总结 什么是最短路问题&#xff1f; 最短路问题是图论中的经典问题&#xff0c;旨在寻找图中两个节点之间的最短路径。常见的最短路算法有多种&#xff0c;这次我们…

MSPM0G3507——GPIO例程讲解1——input_capture

函数&#xff1a; 参数&#xff1a; 返回值&#xff1a; 主函数代码&#xff1a; #include "ti_msp_dl_config.h"extern volatile uint32_t interruptVectors[];int main(void) {SYSCFG_DL_init(); //把所有的LED灯和按键初始化了一…

idea导入文件里面的子模块maven未识别处理解决办法

1、File → Project Structure → 点击“Modules” → 点击“” → “Import Model” 2、可以看到很多子模块&#xff0c;选择子模块下的 pom.xml 文件导入一个一个点累死了&#xff0c;父目录下也没有pom文件 解决办法&#xff1a;找到子模块中有一个pom.xml文件&#xff0c;…

【CT】LeetCode手撕—42. 接雨水

目录 题目1- 思路2- 实现⭐42. 接雨水——题解思路 3- ACM实现 题目 原题连接&#xff1a;42. 接雨水 1- 思路 模式识别&#xff1a;求雨水的面积 ——> 不仅是只求一个比当前元素大的元素&#xff0c;还要求面积 单调栈 应用场景&#xff0c;需要找到左边比当前元素大的…

钓鱼隐藏--文件后缀压缩文件捆绑文件

免责声明:本文仅做技术交流与学习... 目录 文件后缀-钓鱼伪装-RLO 压缩文件-自解压-释放执行 捆绑文件-打包加载-释放执行 文件后缀-钓鱼伪装-RLO 改后缀--伪装 w.exe wgpj.exe (要改的后缀反写)(jpg--->gpj) | (光标移到要改的后缀的前边)(w和g中间) …

Sequelize入门及简单的增删改查

前言 学习一下NodeJS怎么使用Sequelize怎么查询数据库数据 一、Sequelize是什么&#xff1f; Sequelize 是一个基于 promise 的 Node.js ORM, 二、搭建项目 1.安装过程 npm i -g sequelize-cli //全局安装sequelize-clinpm i sequelize mysql2 //安装sequelize和mysql2…

基于YOLOv5的交通标志检测的设计与实现

简介 在智能交通系统中,交通标志的准确检测与识别对提高道路安全和交通效率至关重要。为了实现这一目标,我们开发了一种基于YOLOv5目标检测模型的交通标志检测系统。本报告将详细介绍该系统的实际应用与实现,包括系统架构、功能实现、使用说明、检测示例、数据集获取与介绍…

通信系统网络架构_1.局域网网络架构

当今&#xff0c;通信网络从大的方面主要包括局域网、广域网、移动通信网等网络形式。不同的网络会采用不同的技术进行网络构建。以下针对不同的网络给出各自的网络架构以及所采用的技术。 1.概述 局域网&#xff0c;即计算机局部区域网络&#xff0c;是一种为单一机构所拥有的…