Разрешить 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.

Другие вопросы по тегам