将本机ipv6地址复制到粘贴板脚本
将本机ipv6地址复制到粘贴板脚本
准确的来说是将windows主机的ipv6地址复制到粘贴板上的powershell
脚本。因为有时候需要远程连接我自己的R9000p,所以与其每次开机去命令行运行ipconfig
,不如直接复制到粘贴板里,这样就可以直接打开邮件将地址发送出去。本来想写一个一件发送ipv6地址到指定邮箱的脚本,但是好像很麻烦,就算了。代码由chatgpt生成,再根据我的实际情况改写的。
设备配置
windows为win11,由于学校校园网比较特殊,使用的是拨号上网,拨号名称我设置成了DIANXIN
。
在命令行中运行ipconfig
后会显示很多网络适配器,其中我需要的是:
1 | Windows IP Configuration |
其中IPv6 Address
是我想要的。
脚本代码
1 | # 获取网络适配器的全局 IPv6 地址 |
代码解释
$ipv6Addresses = (Get-NetIPAddress -AddressFamily IPv6 | Where-Object { $_.InterfaceAlias -eq "DIANXIN" -and $_.PrefixOrigin -ne "LinkLayerAddress" }).IPAddress
:
这行代码获取特定网络适配器(InterfaceAlias为”DIANXIN”)的全局 IPv6 地址,并将结果存储在$ipv6Addresses
变量中。if ($ipv6Addresses.Count -ge 2) {
:
这是一个条件语句,用于检查变量$ipv6Addresses
中存储的 IPv6 地址数量是否至少为 2。$ipv6Address = $ipv6Addresses[1]
:
如果存在至少两个 IPv6 地址,那么这行代码将第二个 IPv6 地址(索引为 1)存储在$ipv6Address
变量中。Write-Host "Second IPv6 Address: $ipv6Address"
:
这行代码输出第二个 IPv6 地址到控制台,并在前面添加一条消息 “Second IPv6 Address: “。$ipv6Address | Set-Clipboard
:
这行代码将第二个 IPv6 地址复制到剪贴板中,以便将其粘贴到其他应用程序中使用。} else {
:
这是条件语句的结尾,用于处理当 IPv6 地址数量小于 2 时的情况。Write-Host "Second IPv6 Address not found for specified network adapter."
:
如果 IPv6 地址数量小于 2,那么这行代码输出一条消息到控制台,提示找不到第二个 IPv6 地址。Read-Host -Prompt "Press Enter to exit"
:
这行代码在脚本执行完毕后等待用户按下 Enter 键,以保持 PowerShell 会话处于打开状态。
因为脚本会获取到两个ipv6
地址,一个内网地址和一个外网地址,外网地址是第二个,所以选择了第二个地址。