Everything 有个 HTTP 服务,一直不知道是怎么回事,最近玩了节点小宝,可以异地组局域网,就想着试试,看怎么用这个 HTTP 服务进行搜索吧。
Everything 设置
Everything HTTP 服务器时 Web 服务器允许您通过网络浏览器搜索和访问您的文件。在 Everything 选型中,开启 HTTP 服务,这样就可以通过本机电脑局域网地址,进行访问了,如在浏览器输入 192.168.3.1,就可以访问 Everything 搜索页面了。
但这里有个问题,我的电脑是动态获取局域网 IP,局域网 IP 变化了,访问起来还得来回查局域网本机 IP,于是找 ChatGPT 问到了一个解决办法。
自动更新 IPV4 到 hosts
使用 ChatGPT 编写一个脚本,可以获取本机 IP 地址,并更新到 hosts 文件中,并与自定义域名绑定。
打开 Windows PowerShell ISE,编辑调试 PowerShell 脚本,保存为“自动获取当前的 IPv4 地址并更新到 hosts 绑定域名.ps1”。
先备份下原有的 hosts 文件,命令如下:
Copy-Item -Path "C:\Windows\System32\drivers\etc\hosts" -Destination "C:\Windows\System32\drivers\etc\hosts.bak" -Force
# 获取当前的IPv4地址
$ipv4 = (Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias "以太网" | Where-Object { $_.IPAddress -match '\d+\.\d+\.\d+\.\d+' }).IPAddress
# 定义需要绑定的域名,替换为自己的域名
$domain = "everything.xx.com"
# hosts 文件路径
$hostsFile = "C:\Windows\System32\drivers\etc\hosts"
# 临时文件路径
$tempHostsFile = "C:\Windows\System32\drivers\etc\hosts.tmp"
# 读取 hosts 文件内容
$hostsContent = Get-Content $hostsFile
# 查找是否已经有该域名的记录
$existingRecord = $hostsContent | Where-Object { $_ -match "$domain" }
if ($existingRecord) {
# 如果存在该域名的记录,则更新它的IP地址
$newHostsContent = $hostsContent -replace "^\d+\.\d+\.\d+\.\d+\s+$domain", "$ipv4`t$domain"
# 将新内容写入到临时文件
Set-Content -Path $tempHostsFile -Value $newHostsContent -Force
Write-Host "Hosts 文件已更新:$ipv4 -> $domain"
} else {
# 如果不存在该域名的记录,则保留原始内容并添加新的一行
$newHostsContent = $hostsContent + "`n$ipv4`t$domain"
Set-Content -Path $tempHostsFile -Value $newHostsContent -Force
Write-Host "已添加新记录:$ipv4 -> $domain"
}
# 替换原始 hosts 文件
Remove-Item $hostsFile -Force
Rename-Item $tempHostsFile -NewName "hosts"
# 刷新DNS缓存
ipconfig /flushdns
默认情况下,Windows 系统出于安全考虑可能会阻止执行未签名的脚本。你可以通过更改 PowerShell 的执行策略来解决这个问题。按 Windows + X
,选择 Windows PowerShell (管理员),或者在开始菜单中搜索 PowerShell,右键选择 以管理员身份运行。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
定时自动更新 IP
你可以将该脚本保存为 .ps1
文件,并使用任务计划程序定期运行。例如,每隔一小时执行一次,确保 hosts
文件中的域名记录始终是最新的 IP 地址。
- 打开任务计划程序(Windows + R,输入
taskschd.msc
)。 - 创建一个新任务,并设置执行触发条件(如每小时运行一次)。
- 在操作步骤中选择运行 PowerShell,并输入脚本的路径:
powershell.exe -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"
这样,脚本会定期获取 IPv4 地址并自动更新 hosts
文件中的相应记录。
自己脚本存放路径 G:\Lei\OneDrive\Code\MyScript\Powershell
。
节点小宝
安装节点小宝,将各个电脑组成异地局域网。
评论