Migration
This commit is contained in:
parent
ecd132cc05
commit
20b6471082
28
CheckGateway.ps1
Normal file
28
CheckGateway.ps1
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
$IP = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.IPEnabled}).DefaultIPGateway
|
||||||
|
$MACAddressList = (Get-NetNeighbor -State Reachable)
|
||||||
|
foreach ($item in $MACAddressList) {
|
||||||
|
$AdresseIP = $item.IPAddress
|
||||||
|
$AdresseMAC = $item.LinkLayerAddress
|
||||||
|
if ($IP -contains $AdresseIP){$GatewayMac = $AdresseMAC ; $GatewayIP = $AdresseIP}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$PublicIP = ((Resolve-DnsName -Name myip.opendns.com -Server resolver1.opendns.com).IPAddress)
|
||||||
|
|
||||||
|
$MacFreebox = "F4-CA-E5","00-07-CB","00-24-D4","14-0C-76","34-27-92","68-A3-78","70-FC-8F","8C-97-EA","E4-9E-12"
|
||||||
|
$MacLivebox = "00-37-B7"
|
||||||
|
$MacApple = "BC-B8-63"
|
||||||
|
$MacXiaomi = "E0-CC-F8"
|
||||||
|
$MacFortinet = "08-5B-0E"
|
||||||
|
|
||||||
|
$MacSplit = $GatewayMac -split "-"
|
||||||
|
$MacPrefix = $MacSplit[0] + "-" + $MacSplit[1] + "-" + $MacSplit[2]
|
||||||
|
|
||||||
|
$Router = (Invoke-WebRequest -Uri "https://api.macvendors.com/$MacPrefix").Content
|
||||||
|
|
||||||
|
$ShodanLink = "https://api.shodan.io/shodan/host/" + $PublicIP + "?key=9r6vVczYqYGR9F3WADASttMPt6fqK2Mm"
|
||||||
|
$Shodan = Invoke-RestMethod -uri $ShodanLink
|
||||||
|
$ISP = $Shodan.isp
|
||||||
|
if ($Router -eq ""){"Gateway vendor is unknown ($GatewayMac). `nLocal IP is $AdresseIP. `nPublic IP is $PublicIP."}
|
||||||
|
else{
|
||||||
|
Write-Host "Gateway vendor is $Router ($GatewayMac). `nLocal IP is $AdresseIP. `nPublic IP is $PublicIP ($ISP)."}
|
57
README.md
57
README.md
|
@ -1,2 +1,57 @@
|
||||||
# CheckGateway
|
# Check Gateway - RMM script
|
||||||
|
|
||||||
|
That script is made for RMM using like Solarwinds MSP, NinjaRMM or others.
|
||||||
|
|
||||||
|
## 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","00-07-CB","00-24-D4","14-0C-76","34-27-92","68-A3-78","70-FC-8F","8C-97-EA","E4-9E-12"
|
||||||
|
$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)
|
||||||
|
{$Router = "a Freebox"}
|
||||||
|
elseif($MacLivebox -contains $MacPrefix)
|
||||||
|
{$Router = "a Livebox"}
|
||||||
|
elseif($MacApple -contains $MacPrefix)
|
||||||
|
{$Router = "an Apple device"}
|
||||||
|
elseif($MacXiaomi -contains $MacPrefix)
|
||||||
|
{$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}
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue
Block a user