【问题标题】:What's a good way in PowerShell to check for an IP address switch on a webserver?在 PowerShell 中检查网络服务器上的 IP 地址开关的好方法是什么?
【发布时间】:2008-10-11 03:42:54
【问题描述】:

问题

我们的网络主机提供商正在更改我们所在的其中一台服务器的 IP 地址。我们已经获得了切换何时发生的时间框架,但没有确切的细节。因此,我们当前的穷人检查需要在浏览器上定期刷新页面以查看我们的网站是否仍然存在。

问题

我们都是这里的程序员,这让我很生气,需要任何手动检查。我会知道如何用其他语言做到这一点,但想知道是否有办法在 PowerShell 中编写脚本来解决这个问题。有谁知道我会怎么做?

【问题讨论】:

    标签: networking powershell


    【解决方案1】:

    如果您可以在页面消失或没有预期值时发出警报,您可以使用类似的脚本

    $ip = 192.168.1.1
    $webclient = new-object System.Net.WebClient
    $regex = 'regular expression to match something on your page'
    $ping = new-object System.Net.NetworkInformation.Ping
    
    
    do 
    {
      $result = $ping.Send($ip)
      if ($result.status -ne 'TimedOut' )
      {
        $page = $webclient.downloadstring("http://$ip")
        if (($page -notmatch $regex) -or ($page -match '404') -or ($page -eq $null))
        { break}
      }
    } while ($true)
    
    write-host "The website has moved"
    

    【讨论】:

    • 不错!我想我们离这儿很近。 $ip 需要是一个完整的 http 地址(即192.168.1.1)。此外,此解决方案需要始终为给定的 $ip 准备一个 Web 服务器。因此,当网站移动时,只要网络服务器仍在该服务器上运行,我认为一切都应该很好。
    • 您也可以将其全部包装在 ping 检查中,以确保主机在检查页面之前已启动。我会将其添加到响应中。
    【解决方案2】:

    这将列出系统中每个网络适配器的 IP 地址。

    Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property IPAddress
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-25
      • 2017-09-02
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      相关资源
      最近更新 更多