Определение публичного IP в C # и сравнение с именем хоста - PullRequest
0 голосов
/ 14 мая 2011

У меня есть программа на C #, для которой я хочу получать новости с сервера, который я установил в своем подвале. Я также хочу настроить эту программу, чтобы она могла работать локально. Я думаю, что для этого мне нужно сравнить разрешенный ip моего имени хоста dyndns.biz с публичным ip моего роутера (на моем сервере динамический ip и клиент обновляет ip имени хоста) и, таким образом, определить, должно ли имя хоста быть используется или локальный ip сервера (192.168.0.100) или имя хоста. У меня уже есть код для подключения к FTP-серверу, если я могу правильно использовать имя хоста в сравнении с локализованным IP-адресом.

Редактировать: В любом случае, в итоге, потому что я понял, что это может не выглядеть вопросом, как я могу определить a) разрешенный IP-адрес имени хоста и b) публичный IP-адрес моего маршрутизатора в приложении C #

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Ты слишком усложняешь это.Просто откройте ваш hosts файл (находится в C:\Windows\System32\drivers\etc) и добавьте ваше имя хоста dyndns, направляя его в loopback.Таким образом, вам не нужно добавлять какой-либо обходной код в конечное приложение, чтобы он даже не запрашивал ваш DNS или маршрутизатор:

127.0.0.1 yourhostname.dyndns.biz
1 голос
/ 14 мая 2011

Чтобы получить IP-адрес имени хоста, используйте следующий код:

IPAddress[] addresses = System.Net.Dns.GetHostAddresses("www.cnn.com");

Чтобы получить ваш общедоступный IP-адрес вашего маршрутизатора или локальной сети, вам нужно поговорить с внешней системой, которая может сообщитьВы - та часть, и, к сожалению, я не знаю, существует ли такая система, которая бесплатна и проста в использовании из программы.

...