|
@@ -1,2 +1,58 @@
|
|
|
# PowerShell_Scripts
|
|
|
Some useful PowerShell scripts
|
|
|
+
|
|
|
+## Check Gateway
|
|
|
+
|
|
|
+### How it works ?
|
|
|
+
|
|
|
+First, the script gets the gateway's IP address :
|
|
|
+
|
|
|
+`$LocalIP = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.IPEnabled}).DefaultIPGateway`
|
|
|
+
|
|
|
+Then, with the IP address, the script gets the MAC address of the gateway :
|
|
|
+
|
|
|
+`$MacAddress = ((Get-NetNeighbor -IPAddress $LocalIP).LinkLayerAddress)`
|
|
|
+
|
|
|
+And the public IP address with opendns.com :
|
|
|
+
|
|
|
+`$PublicIP = ((Resolve-DnsName -Name myip.opendns.com -Server resolver1.opendns.com).IPAddress)`
|
|
|
+
|
|
|
+Next, we got arrays containing the MAC addresses by manufacturer :
|
|
|
+
|
|
|
+```
|
|
|
+$MacFreebox = "F4-CA-E5"
|
|
|
+$MacLivebox = "00-37-B7"
|
|
|
+$MacApple = "BC-B8-63"
|
|
|
+$MacXiaomi = "E0-CC-F8"
|
|
|
+```
|
|
|
+
|
|
|
+The script cuts the MAC address of the gateway by 3 groups (bytes) :
|
|
|
+
|
|
|
+```
|
|
|
+$MacSplit = $MacAddress -split "-"
|
|
|
+$MacPrefix = $MacSplit[0] + "-" + $MacSplit[1] + "-" + $MacSplit[2]
|
|
|
+```
|
|
|
+
|
|
|
+Next, compares the MAC addresses with arrays :
|
|
|
+
|
|
|
+```
|
|
|
+if($MacFreebox -contains $MacPrefix) # Check for Freebox
|
|
|
+{$Router = "a Freebox"}
|
|
|
+elseif($MacLivebox -contains $MacPrefix) # Check for Livebox
|
|
|
+{$Router = "a Livebox"}
|
|
|
+elseif($MacApple -contains $MacPrefix) # Check for Apple Device
|
|
|
+{$Router = "an Apple device"}
|
|
|
+elseif($MacXiaomi -contains $MacPrefix) # Check for Xiaomi Device
|
|
|
+{$Router = "a Xiaomi device"}
|
|
|
+else # If router is unknown
|
|
|
+{$Router = "Unknown"}
|
|
|
+```
|
|
|
+
|
|
|
+And give the result of the comparison :
|
|
|
+
|
|
|
+```
|
|
|
+if ($Router -like 'Unknown') # In the case router is unknown
|
|
|
+{Write-Host "Router is unknown ($MacAddress). Maybe a randomized MAC address" ; exit 1}
|
|
|
+else
|
|
|
+{Write-Host "Gateway is $Router ($MacAddress). `nLocal IP is $LocalIP. `nPublic IP is $PublicIP." ; exit 0}
|
|
|
+```
|