- No, no puede evitar que Comcast cambie su dirección IP a menos que les haya comprado una dirección IP estática.
- Cuando cambie su enrutador / MAC, probablemente emitirán una nueva dirección IP.
- En mi experiencia, Comcast cambia las direcciones IP cada 1 a 3 años
Una forma de mantener su "IP dinámica" sincronizada con su DNS es mediante el uso de un servicio como Dyn o NoIP que proporcionan sus nombres de dominio / nombres de dominio para comprar.
Sin embargo, si tiene su propio nombre de dominio personalizado que le gustaría usar, puede usar los servicios de DNS de NameSilo ( http://www.namesilo.com ) como su proveedor de DNS y el script de Windows de PowerShell a continuación junto con un programado tarea para replicar el servicio Dyn / NoIP.
Suponiendo que está ejecutando Windows, aquí hay un script simple que puede "programar" usando el Programador de tareas para ejecutar en Inicio / Inicio de sesión y luego volver a ejecutarlo cada 6 horas (de esa manera, el tiempo de inactividad máximo debido a un cambio de dirección IP es de 6 horas).
Guarde el script a continuación en un archivo llamado NameSiloDDNS.ps1
# NameSilo API Dynamic DNS
#Variables
param([string]$APIkey=$(throw "APIKey is required"), [string]$domain=$(throw "Domain is required"), [string]$record)
###Code - Do not edit below this line
# Gather data about the DNS entries in the domain
$listdomains = Invoke-RestMethod -Uri "https://www.namesilo.com/apibatch/dnsListRecords?version=1&type=xml&key=$APIkey&domain=$domain"
$CurrentIP = $listdomains.namesilo.request.ip
if ($record) {
$RecordIP = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$record.$domain" -and $_.type -eq "A"}).value
$RecordID = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$record.$domain" -and $_.type -eq "A"}).record_id
} else {
$RecordIP = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$domain" -and $_.type -eq "A"}).value
$RecordID = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$domain" -and $_.type -eq "A"}).record_id
}
$listdomains.namesilo.reply
#Write-Host "CurrentIP $CurrentIP, RecordIP $RecordIP, RecordID $RecordID"
# If the current IP address is not the same as the one in the record it updates it
Write-Host "https://www.namesilo.com/apibatch/dnsUpdateRecord?version=1&type=xml&key=$APIkey&domain=$domain&rrid=$RecordID&rrhost=$record&rrvalue=$CurrentIP&rrttl=3600"
if ($CurrentIP -ne $RecordIP){
if ($record) {
Write-Host "Updating $record.$domain with IP $CurrentIP"
} else {
Write-Host "Updating $domain with IP $CurrentIP"
}
$update = Invoke-RestMethod -Uri "https://www.namesilo.com/apibatch/dnsUpdateRecord?version=1&type=xml&key=$APIkey&domain=$domain&rrid=$RecordID&rrhost=$record&rrvalue=$CurrentIP&rrttl=3600"
$update.namesilo.reply
} else {
Write-Host "No need to update $record.$domain, IP $CurrentIP upto date"
}
A continuación, guarde el script a continuación en un archivo llamado UpdateDDNSIPv4.bat
.
PowerShell -ExecutionPolicy Bypass .\NameSiloDDNS.ps1 <NameSilo_API_Key> somedomain.com
PowerShell -ExecutionPolicy Bypass .\NameSiloDDNS.ps1 <NameSilo_API_Key> somedomain.com subdomain
Mantenga ambos archivos en el mismo directorio. UpdateDDNSIPv4.bat
es el archivo por lotes que debe llamar el Programador de tareas en su tarea recurrente.
Un par de cosas a tener en cuenta, deberá iniciar sesión en su cuenta NameSilo y en API Manager -> Generar una clave API que debe ingresar en el script por lotes anterior para reemplazar <NameSilo_API_Key>
. Este script se puede usar para actualizar sus A
registros DNS para el dominio principal (por ejemplo somedomain.com
) y también para sus subdominios (por ejemplo subdomain
). Puede crear una línea para cada dominio / subdominio que desee actualizar.
Este script buscará automáticamente su "Dirección IP pública" y luego actualizará sus registros DNS NameSilo.
Puede encontrar un equivalente de BASH de este script aquí: https://github.com/pztop/namesilo_ddns
También se puede encontrar un equivalente en Python de un script en:
https://github.com/rbenji/DynamicDNS-for-NameSilo
Este script fue tomado y personalizado de http://www.forkrobotics.com/2014/10/dynamic-dns-with-namesilo-and-powershell/
Espero que esto ayude