Everything+节点小宝,资料搜索更便捷!

Everything+节点小宝,资料搜索更便捷!

Tabor
2024-09-30 / 0 评论 / 113 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年09月30日,已超过197天没有更新,若内容或图片失效,请留言反馈。

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 地址。

  1. 打开任务计划程序(Windows + R,输入 taskschd.msc)。
  2. 创建一个新任务,并设置执行触发条件(如每小时运行一次)。
  3. 在操作步骤中选择运行 PowerShell,并输入脚本的路径:
powershell.exe -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"

这样,脚本会定期获取 IPv4 地址并自动更新 hosts 文件中的相应记录。

自己脚本存放路径 G:\Lei\OneDrive\Code\MyScript\Powershell

节点小宝

安装节点小宝,将各个电脑组成异地局域网。

0

评论

博主关闭了所有页面的评论