Jump to content

Network Tool erstellung, IP,Hostname,Ip-Range


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Gemeinde, hi leute :)

 

Also ich möchte mir einen Tool bauen für die Netzwerkanaylse

 

Der Scanner soll die IP-Range auflisten, Hostnamen, IP, MAC Adresse, Shares anzeigen und ob der PC Online ist.

 

#Network Anaylse
Clear-Host

function Get-IPAddress {  

   param(  
       [switch]  
       $first,  
       [Parameter(ParameterSetName='IPV4')]  
       [switch]  
       $IPv4,  
       [Parameter(ParameterSetName='IPV4')]  
       [switch]  
       $IPv6  
   )  
   $ip = @(Get-WmiObject -Filter 'IPEnabled=true' Win32_NetworkAdapterConfiguration | Select-Object -ExpandProperty IPAddress)  
   if ($IPv4) { $ip = $ip | Where-Object { $_ -like '*.*' }}  
   if ($IPv6) { $ip = $ip | Where-Object { $_ -like '*:*' }}  

   if ($ip.Count -gt 1 -and $first) {  
       $ip[0]  
   } else {  
       $ip  
   }  
}  
function Get-IPRange($start, $end) {  
       $ip1 = ([system.Net.IPAddress]$start).GetAddressBytes()  
       [Array]::Reverse($ip1)  
       $ip1 = ([system.Net.IPAddress]($ip1 -join '.')).Address  

       $ip2 = ([system.Net.IPAddress]$end).GetAddressBytes()  
       [Array]::Reverse($ip2)  
       $ip2 = ([system.Net.IPAddress]($ip2 -join '.')).Address  

       for ($x = $ip1; $x -le $ip2; $x++) {  
           $ip = ([system.Net.IPAddress]$x).GetAddressBytes()  
           [Array]::Reverse($ip)  
           $ip -join '.'  
       }  

   }  

   if ($PSCmdlet.ParameterSetName -eq 'Automatic') {  
       @(Get-IPAddress -first:$first -IPv4) |  
       ForEach-Object {  
           $temp = ([system.Net.IPAddress]$_).GetAddressBytes()  
           $temp[3] = 1  
           [system.Net.IPAddress]$start = $temp -join '.'  
           $temp[3] = 255  
           [system.Net.IPAddress]$end = $temp -join '.'  
           Get-IPRange $start $end          
       }  
   } else {  
       Get-IPRange $start $end  
   }      
function Test-Online {  


   param(  
       [Parameter(Mandatory=$true, ValueFromPipeline=$true)]  
       [string]  
       $computername,  
       [int32]  
       $throttleLimit = 300  
   )  

   begin { $list = New-Object System.Collections.ArrayList }  
   process {   
       [void]$list.Add($computername)  
   }  
   end {  
       & {   
           do {  
           $number = [Math]::Min($list.Count, $throttleLimit)  
           $chunk = $list.GetRange(0, $number)  

           $job = Test-Connection $chunk �Count 1 �asJob  
           $job | Wait-Job | Receive-Job | Where-Object { $_.StatusCode -eq 0 } | Select-Object �expandProperty Address   
           Remove-Job $job  
           $list.RemoveRange(0, $number)  
       } while ($list.Count -gt 0)   
       } | Sort-Object { [system.Version]$_ }  
   }  

}  

function Get-HostName {  


   param(  
       [Parameter(Mandatory=$true, ValueFromPipeline=$true)]  
       [string[]]  
       $IPAddress  
   )  

   process {  
       $IPAddress | Foreach-Object {  
           $ip = $_  
           try {  
               [system.Net.DNS]::GetHostByAddress($ip)  
           } catch {   
               Write-Warning �IP $ip did not return DNS information�  
           }  
       }  
   }  
}  


Get-IPAddress | Test-Online | Get-HostName 

 

Soweit hab ich mir das mal gedacht aber ich scheitere daran.

Vielleicht sieht wer von euch wo es hackt ?

 

Danke nochmals

 

LG

Link zu diesem Kommentar

Hallo Schreckinger,

 

einfach hier einen kopierten Code ohne Quellenangabe reinzuwerfen und zu fragen, woran es ha©kt, führt zu nichts!

Wenn du ganz konkret nicht weiterkommst, dann kannst du gerne den entsprechenden Codeausschnitt mit deiner Frage hier posten.

 

Damit du auch etwas lernst, geb ich dir mal ein paar Regeln mit, die du bitte ab jetzt beherzigst: (gelten aber nur für dich!)

 

- kein kopierter Code ohne Quellenangabe mehr

 

- keine Frage zu Code, ohne dass die auf die notwendigen Informationen gekürzte Ausgabe dabei steht

 

- keine Codeschnippsel länger 5 Zeilen mehr in einem Post

 

- idealerweise benützt du Kommentare, die zählen natürlich nicht zu den 5 codezeilen dazu.

 

- keine Pauschal-Fragen mehr wie "warum hakt es", sondern eine Beschreibung, was du bisher probiert hast und was du nicht verstehst.

 

Wenn du diese Regeln beherzigst, dann ist dir selbst am meisten geholfen. Ich werde auf die Einhaltung dieser Regeln bei dir achten und eventuell Posts ggf. schließen

 

Danke für Dein Verständnis

blub

Link zu diesem Kommentar
Hallo Schreckinger,

 

einfach hier einen kopierten Code ohne Quellenangabe reinzuwerfen und zu fragen, woran es ha©kt, führt zu nichts!

Wenn du ganz konkret nicht weiterkommst, dann kannst du gerne den entsprechenden Codeausschnitt mit deiner Frage hier posten.

 

Damit du auch etwas lernst, geb ich dir mal ein paar Regeln mit, die du bitte ab jetzt beherzigst: (gelten aber nur für dich!)

 

- kein kopierter Code ohne Quellenangabe mehr

 

- keine Frage zu Code, ohne dass die auf die notwendigen Informationen gekürzte Ausgabe dabei steht

 

- keine Codeschnippsel länger 5 Zeilen mehr in einem Post

 

- idealerweise benützt du Kommentare, die zählen natürlich nicht zu den 5 codezeilen dazu.

 

- keine Pauschal-Fragen mehr wie "warum hakt es", sondern eine Beschreibung, was du bisher probiert hast und was du nicht verstehst.

 

Wenn du diese Regeln beherzigst, dann ist dir selbst am meisten geholfen. Ich werde auf die Einhaltung dieser Regeln bei dir achten und eventuell Posts ggf. schließen

 

Danke für Dein Verständnis

blub

 

Hallo Blub

 

ich werde diese Regel beherzigen.

 

und entschuldige mich für diesen Post in der Früh. Ich hatte nicht die Zeit den Post zubeschreiben.

 

lg

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...