Разрешить IP из DNS без A IP
Мне нужно разрешить IP-адрес из моего имени хоста без IP- адреса, которое я настроил, потому что я нахожусь за маршрутизатором, а у этого маршрутизатора нет статического публичного IP-адреса. Имя хоста настроено как DNS-запись. Мне нужен IP для обратного подключения с компьютера на мой собственный компьютер.
Я уже попробовал это с:
IPAddress address = Dns.GetHostAddresses("****.ddns.net")[0];
Но это только пишет "127.0.0.1" в "адрес".
Кто-нибудь может мне помочь?
1 ответ
Я думаю, проблема в том, что "****.ddns.net"
не является разрешимым IP-адресом. В моем примере я использую "heise.de"
и работает нормально.
Какие GetHostAddresses
делает, спрашивая службу имен вашего компьютера, знает ли он это конкретное имя. И если он не знает себя, он спросит своего родителя и так далее. Если кто-то знает имя, он даст этот IP вам. Но чтобы это работало, вы должны попросить конкретное разрешимое имя.
Кроме того, вы должны проверить, является ли возвращенный список пустым:
System.Net.IPAddress[] adresses = System.Net.Dns.GetHostAddresses("heise.de");
if (adresses.Length > 0)
{
System.Net.IPAddress address = System.Net.Dns.GetHostAddresses("heise.de")[0];
}
Похоже, вы используете DynDNS, поэтому имя, которое вы ищете, должно быть хорошо известно. Если вы не получите правильный ip для него, значит, что-то не так с настройкой вашей системы DNS.