Получить имя хоста для каждого IP-адреса RemoteAddress в новом члене

535
SchoolforDesign

У меня есть сценарий PowerShell, который имеет некоторые переменные

  1. $GetCon : Получить Tcp-соединение в Powershell
  2. $hn: Получить развернуть удаленный адрес в $GetCon.
  3. $rrt : число всех результатов, это все IP-адреса подключения.
  4. $GNamess: это переменная для создания нового члена по имени ( URL ), для $GetConкоторой это Get-NetTCPConnection.

Наконец, у меня есть новый член, он будет содержать список имен хостов каждого соединения для каждого IP-адреса в Get-TCPConnection RemoteAddress.

Но мы не восстанавливаем результат хоста в результате, в результате у меня есть один хост для каждого хоста.

пожалуйста, дайте мне метод, чтобы получить все хосты в результате.

Неверный синтаксис:

$GetCon = Get-NetTCPConnection  $hn = $GetCon | select -expand RemoteAddress  $rrt = foreach ($IPs in $hn) {  [System.Net.Dns]::GetHostAddresses($IPs) | select-object IPAddressToString -expandproperty IPAddressToString  }   $GNamess = foreach ($IPst in $GetCon) {  $rrt = ([System.Net.Dns]::GetHostbyAddress($IPs) | select-object HostName -expandproperty HostName) $IPst | Add-Member -NotePropertyName urls -NotePropertyValue $rrt -PassThru }  $GetCon | select urls 

Результат изображения : Результат изображения

1

1 ответ на вопрос

1
JosefZ

Слишком долго для комментариев и трудно угадать вашу цель из вашего кода, так что, возможно, создание словаря наполнения $IPsNamesможет помочь?

$IPsNames = @{}  $GetCon = Get-NetTCPConnection  $hn = $GetCon | select -expand RemoteAddress | sort -Unique  foreach ( $IPs in $hn ) {  try { $rrtx = [System.Net.Dns]::GetHostbyAddress($IPs).HostName } catch { $rrtx = '???' }  $IPsNames[ $IPS ] = $rrtx }  ### $IPsNames  for ( $i = 0; $i -lt $GetCon.Count; $i++ ) {  $aux = $IPsNames[ $GetCon[$i].RemoteAddress ] $GetCon[$i] | Add-Member -NotePropertyName urls -NotePropertyValue $aux   }  ### $GetCon | Format-Table -Property RemoteAddress, urls -AutoSize  $GetCon | selelect -Property RemoteAddress, urls 
Спасибо, @JosefZ, чтобы помочь нашим ошибкам. это полезно для меня, но я хочу добавить нового члена в переменную $ GetCon. У меня неправильный синтаксис с правильным синтаксисом: $ Rem = $ IPsNames.Values ​​$ GetCon | выберите URL-адреса ... Пожалуйста, исправьте это для меня. благодарю вас SchoolforDesign 7 лет назад 0
Обновлен ответ @SchoolforDesign (возможный подход). JosefZ 7 лет назад 0
Спасибо, мой брат, это очень полезно для меня ... @JosefZ Могу я спросить что-нибудь еще? SchoolforDesign 7 лет назад 0
@SchoolforDesign Конечно, вы можете попросить небольшую спецификацию ... хотя ... [эту стратегию] (http://stackoverflow.com/questions/41657595/proper-syntax-powershell-error-for-missing-parenthesis-but-only -6-parenthesis-i / 41657767? Noredirect = 1 # comment70533644_41657767) _could_ может быть более эффективным способом для вас, так как сайты StackExchage, в конечном счете, не похожи на чаты. Если мой ответ был полезным, пожалуйста, пометьте его как принятый. [См. Эту страницу] (http://meta.stackexchange.com/questions/5234/) для объяснения того, почему это важно. JosefZ 7 лет назад 0
Конечно @JosefZ, ваш ответ очень полезен, извините за то, что вы забыли принятый вами ответ. (1) у меня другой вопрос: у меня на PowerShell HTML-таблица, в которую импортированы некоторые регистры или псевдонимы, такие как порт, ipaddress..etc. и у меня есть HTML
тег, который еще ничего не содержит! Я хочу добавить некоторую информацию, встроенную в $ GetCon, которая является моим псевдонимом.
SchoolforDesign 7 лет назад 0
(2), я хочу добавить, например: когда я нажимаю первую строку в таблице, которая содержит IP (127.0.0.1),
содержащий «localhost». и так далее для каждой строки таблицы. еще раз спасибо
SchoolforDesign 7 лет назад 0