Skip to content

Instantly share code, notes, and snippets.

@quonic
Created January 24, 2023 20:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quonic/4c86ad44fe26c25b3cf0931d6cbfd1d5 to your computer and use it in GitHub Desktop.
Save quonic/4c86ad44fe26c25b3cf0931d6cbfd1d5 to your computer and use it in GitHub Desktop.
A simple class for defining an IPv4 address, accessing or changing any octet. Uses the Version object as the base object.
class IP {
IP([string]$Address) {
$this._IPAddress = $Address
}
hidden [Version] $_IPAddress = $($this | Add-Member ScriptProperty 'Address' {
# get
[PSCustomObject]@{
First = $this._IPAddress.Major
Second = $this._IPAddress.Minor
Third = $this._IPAddress.Build
Forth = $this._IPAddress.Revision
}
} {
# set
param ( $arg )
$this._IPAddress = $arg
}
)
[string] ToString() {
return $this._IPAddress.ToString()
}
[IPAddress] ToIPAddress() {
return [IPAddress]::Parse($this._IPAddress.ToString())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment