获取本地IP,然后测试在Powershell中侦听的端口443

时间:2016-01-14 20:36:49

标签: powershell

所以这就是我要做的...我想运行一个脚本,枚举正在侦听端口443并导出这些IP列表的系统上的所有本地IP。

这是我到目前为止所拥有的:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress

然而,输出如下:

IPAddress                                                                                                                                                                             
---------                                                                                                                                                                             
{10.206.147.139, 10.206.147.138, 10.206.147.137, 10.206.147.136...}                                                                                                                   
{172.18.4.24}  

如何以完整格式获取此列表(不使用“...”截断)。此外,任何删除括号的方法,所以我只有一个逗号分隔列表?我想我可以从那里处理它。一如既往,谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用.Net套接字连接到端口443:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter 'IPEnabled=TRUE' | Select -ExpandProperty IPAddress | % {
   $Socket = New-Object Net.Sockets.TcpClient
   $Socket.Connect($_, 443)
   If ($Socket.Connected) {
      $Socket.Close()
      Write-host "$port open on $_"
   }
}

答案 1 :(得分:0)

所以我想出来了......

gwmi Win32_NetworkAdapterConfiguration |
    Where { $_.IPAddress } | # filter the objects where an address actually exists
    Select -Expand IPAddress | # retrieve only the property *value*
    Where { $_ -like '10.*.*' }