-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScreenOS Network Objects
39 lines (33 loc) · 2.17 KB
/
ScreenOS Network Objects
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
############################## CONFIG ##############################
Get-Content .\screenos.txt | select-string -Pattern '^set address' | foreach {
[string]$name = $_ -replace '^set address.+?".+?"\s+"(.+?)"\s+(\d+\.\d+\.\d+\.\d+)\s+(\d+\.\d+\.\d+\.\d+).*','$1'
[string]$netw = $_ -replace '^set address.+?".+?"\s+(".+?")\s+(\d+\.\d+\.\d+\.\d+)\s+(\d+\.\d+\.\d+\.\d+).*','$2'
[net.ipaddress]$mask = $_ -replace '^set address.+?".+?"\s+(".+?")\s+(\d+\.\d+\.\d+\.\d+)\s+(\d+\.\d+\.\d+\.\d+).*','$3'
#[string]$desc = $_ -ireplace '(^set address.+?".+?"\s+".+?"\s+\d+\.\d+\.\d+\.\d+\s+\d+\.\d+\.\d+\.\d+\s+)(".+?")','$2'
[string]$pref = ([convert]::ToString($mask.Address,2) -replace '0','' | measure -Character).Characters
$i = New-Object -TypeName psobject
$i | Add-Member -MemberType NoteProperty -Name name -Value $name
$i | Add-Member -MemberType NoteProperty -Name Network -Value "$netw/$pref"
$i | Add-Member -MemberType NoteProperty -Name description -Value $desc
$AddressGroup = [Array]$AddressGroup + $i
}
$AddressGroup
############################## DATAFILE ##############################
$address = Get-Content .\datafile.txt
$address = $address -join ''
$address = $address -split '\s+:\s+'
$addresses = @()
$address | foreach {
$NetName = ([regex]::Match("$_",'^\(".+?"\s')).value -replace'^\(',''
$Network = ([regex]::Match("$_",':ip\s\(".+?"\)')).value -replace ':ip|\s|\(|\)|"',''
$NetMask = ([regex]::Match("$_",':netmask\s\(\d{1,2}\)')).value -replace ':netmask\s\(|\)',''
$Comment = ([regex]::Match("$_",':comment\s\(".+?"\)')).value -replace ':comment\s\(|\)',''
$DomainN = ([regex]::Match("$_",':domain-name\s\(".+?"\)')).value -replace ':domain-name\s\(|\)',''
$NetAddress = New-Object -TypeName psobject
$NetAddress | Add-Member -MemberType NoteProperty -Name Name -Value $NetName
$NetAddress | Add-Member -MemberType NoteProperty -Name Network -Value "$Network/$NetMask"
$NetAddress | Add-Member -MemberType NoteProperty -Name Description -Value $Comment
$NetAddress | Add-Member -MemberType NoteProperty -Name DomainName -Value $DomainN
$addresses += $NetAddress
}
$addresses | export-csv addresses1.csv -NoClobber -NoTypeInformation