赞
踩
废话:最近放假回家,在家里突然想玩游戏了,Steamdeck性能终归有限。部分游戏始终玩的不爽,想到之前了解到的Sunshnie+Moonlight串流的方案,远程调用家里的电脑打游戏,简直不要太爽。
一顿折腾之后配置好了所有的软件,使用IPV6连接,体验确实不错。但遇到一个问题,家里的电脑每次重新启动IPV6的地址都会变,这样每次需要使用远程桌面连接上去拿一下IPV6地址,非常麻烦。这里有两个解决方案:
- DDNS方案,使用DDNS软件将IPV6地址映射到域名,这样每次只需要访问域名就可以连接,但是也有缺点,DNS的传播是需要时间的,有时候就是无聊了想打几十分钟的Roguelike游戏,但是远程开电脑等待DNS域名修改传播要好久,对于这种短时间内的访问需求太不友好。
- 直接获取IPV6地址方案,想着创建一个任务,让Windows每次开机的时候自动发送IPV6的地址到我的邮箱,这样就方便很多,不需要等待,开机就能直接开玩。
对我来说肯定是方案二比较合适,方案定下了,开始实施。
前提工作: 第一、你需要你的被访问电脑能够获取到正确的IPV6,并且能够被外网访问。
第二、你需要一个用来接收IPV6地址的邮箱,可以是任何企业邮箱(但一定要是自己的邮箱,其他人不能接触到邮件内容,向外人泄露自己电脑的IP是非常危险的行为!!! 这点尤其注意),但是需要邮箱提供的STMP服务和一个授权码,简单来说就是你可以通过这个授权码调用邮箱的服务器给自己的邮箱发一封邮件。获取的过程可以根据不同的邮箱在网上搜索教程。我用的QQ邮箱,以下以QQ邮箱为例。
$ipv6Addresses = (Get-NetIPAddress -AddressFamily IPv6 | Where-Object { $_.PrefixOrigin -eq "RouterAdvertisement" } | Where-Object { $_.SuffixOrigin -eq "Random" }).IPAddress
Get-NetIPAddress -AddressFamily IPv6
| Where-Object { $_.PrefixOrigin -eq "RouterAdvertisement" } | Where-Object { $_.SuffixOrigin -eq "Random" }
我想表达的是你需要根据你电脑的实际情况进行修改,最终目的是为了获取到正确的IPV6地址
另外,你还可能遇到电脑有两个IPV6地址的情况,如果是这样,你可以使用网站:测试IPV6这个网站来查看自己对外的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)
SendIPv6Address.ps1
,放在一个方便管理的目录。Win + R
键,输入 taskschd.msc
,然后按回车。powershell.exe
。-File "C:\path\to\SendIPv6Address.ps1"
,将 C:\path\to\SendIPv6Address.ps1
替换为实际脚本的路径。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。