【问题标题】:Powershell Script- Pipe to export CSV for Reverse DNS fails.Powershell Script- Pipe to export CSV for Reverse DNS 失败。
【发布时间】:2014-05-02 04:55:22
【问题描述】:

我正在尝试编写一个脚本,该脚本将从 IP 地址的 .txt 文件中获取输入。执行反向 DNS 查找以获取 IP 地址的主机名,然后将该数据导出到 .csv 文件中。

这是我目前所拥有的。

# getting the IP's from the file


$IPADDR = Get-Content "C:\Users\douglasfrancis\Desktop\IP_Test.txt"


ForEach ($IPADDR in $IPADDR)
{
  [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -    MemberType NoteProperty -PassThru | select IP, HostName | sort -property Hostname | export-    csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" 

}

现在创建的 CSV 文件将具有我分配的列标题以及列表中的最后一个 IP 地址及其主机名。所以它以某种方式放弃了其他一切。

如果我在 export-csv 注释掉的情况下运行它,那么所有 IP 都会显示在控制台中,但不会按主机名排序。

我之前使用过同样的基本管道,没有任何问题,所以我对这里发生的事情有点茫然。任何帮助都会很棒。

谢谢,

【问题讨论】:

    标签: powershell csv scripting dns pipe


    【解决方案1】:

    您应该在将结果导出为 CSV 之前将其放入数组中:

    # getting the IP's from the file
    
    $IPADDRS = Get-Content "C:\Users\douglasfrancis\Desktop\IP_Test.txt"
    
    $result = @()
    ForEach ($IPADDR in $IPADDRS)
    {
      $result += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
    }
    $result  | sort -property Hostname | export-csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" -NoTypeInformation
    

    @David Braban 是真的,这不是你的麻烦,但我使用 $IPADDRS 作为集合,$IPADDR 作为每个值,这样就非常正确(可读)/

    【讨论】:

    • 这就是我要找的。我之前尝试过类似的方法,但我知道“$result = [System.Net.DNS].....”而不是“$result += [System.Net.DNS].....”我错过了一些东西,但我无法放置它。如果眼睛能做到,那么新鲜的套装真是太棒了。
    【解决方案2】:

    在你的代码中,我看到了:

    ForEach ($IPADDR in $IPADDR)
    

    这是非常错误的:你使用同一个变量作为你的集合和作为迭代的变量。

    用途:

    $ipaddr | %{ [System.Net.DNS]::GetHostbyAddress($_) } | ...
    

    【讨论】:

    • 你是对的@David Braban,但试试看,它可以 $IPADDR 获取 foreach 范围内的值(对我来说也很奇怪)
    • 我认为这可能是问题所在,我在发表这篇文章之前尝试更改它,它会抛出值为 null 的错误。这让我相信这是我的管道问题,而不是数据在控制台中正确显示的分配方式,而不是在导出后。
    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 2018-02-08
    • 2020-12-03
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多