我一直试图弄清楚为什么我的代码无效.
我在CSV文件中有一个IP地址列表.从我想要获取计算机名称的IP地址列表中.当我执行时,无论我得到什么
使用"1"参数调用"GetHostByAddress"的异常:"指定了无效的IP地址." 在行:3 char:35 + [System.Net.dns] :: GetHostbyAddress <<<<("$ foo [0]")+ CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
以下是CSV文件和使用的代码的示例:
CSV文件
值
192.168.0.11
192.168.0.12
192.168.0.13
192.168.0.14
正在使用的代码:
$foo = import-csv C:\test\test\test.csv
[System.Net.dns]::GetHostbyAddress("$foo[0]")
Run Code Online (Sandbox Code Playgroud)
更新:添加了Trim()调用以删除前导或尾随空格(如果存在).
删除引号并调用value属性:
$foo = import-csv C:\test\test\test.csv
[System.Net.dns]::GetHostbyAddress($foo[0].Value.Trim())
Run Code Online (Sandbox Code Playgroud)
要解决所有地址:
import-csv C:\test\test\test.csv |
foreach-object { [System.Net.dns]::GetHostbyAddress($_.Value.Trim()) }
Run Code Online (Sandbox Code Playgroud)
您可以使用-as类型运算符仅传递有效地址:
import-csv C:\test\test\test.csv |
where-object {$_.Value.Trim() -as [ipaddress]} |
foreach-object { [System.Net.dns]::GetHostbyAddress($_.Value.Trim()) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13484 次 |
| 最近记录: |