$OldGatewayIP = Get-Content "/home/azureuser/iplog.txt"
$HomeGatewayIP = $([Net.DNS]::GetHostEntry("gateway.technochat.in")).AddressList.IPAddressToString
if ($HomeGatewayIP -ne $OldGatewayIP)
{
$tenantID = "TenentID"
$clientId = "ClientID"
$clientPassword = "ClientPassword"
$userPassword = ConvertTo-SecureString -String $clientPassword -AsPlainText -Force
$AzureRMCred = New-Object -TypeName System.Management.Automation.PSCredential($clientID, $userPassword)
Connect-AzAccount -ServicePrincipal -Credential $AzureRMCred -Tenant "TenentID"
Set-AzContext -Subscription "YourSubID" -Tenant "YourTenentID"
$nsgName = "DockerIN-nsg"
$resourceGroupName = "Docker-Lab-Cen-India"
$rule_name = @("AllowAnyDNS-TCPInbound","AllowCidrBlockDNS-UDPInbound","SSH")
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
$rule= $nsg | Get-AzNetworkSecurityRuleConfig -Name $rule_name[0]
Set-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg `
-Name $rule_name[0] `
-Access $rule.Access `
-Protocol $rule.Protocol `
-Direction $rule.Direction `
-Priority $rule.Priority `
-SourceAddressPrefix $HomeGatewayIP `
-SourcePortRange $rule.SourcePortRange `
-DestinationAddressPrefix $rule.DestinationAddressPrefix `
-DestinationPortRange $rule.DestinationPortRange
$nsg | Set-AzNetworkSecurityGroup
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
$rule= $nsg | Get-AzNetworkSecurityRuleConfig -Name $rule_name[1]
Set-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg `
-Name $rule_name[1] `
-Access $rule.Access `
-Protocol $rule.Protocol `
-Direction $rule.Direction `
-Priority $rule.Priority `
-SourceAddressPrefix $HomeGatewayIP `
-SourcePortRange $rule.SourcePortRange `
-DestinationAddressPrefix $rule.DestinationAddressPrefix `
-DestinationPortRange $rule.DestinationPortRange
$nsg | Set-AzNetworkSecurityGroup
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
$rule= $nsg | Get-AzNetworkSecurityRuleConfig -Name $rule_name[2]
Set-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg `
-Name $rule_name[2] `
-Access $rule.Access `
-Protocol $rule.Protocol `
-Direction $rule.Direction `
-Priority $rule.Priority `
-SourceAddressPrefix $HomeGatewayIP `
-SourcePortRange $rule.SourcePortRange `
-DestinationAddressPrefix $rule.DestinationAddressPrefix `
-DestinationPortRange $rule.DestinationPortRange
$nsg | Set-AzNetworkSecurityGroup
$HomeGatewayIP > "/home/azureuser/iplog.txt"
}
else
{
Write-Host "No changes detected."
}