Как обнаружить изменение общедоступного IP-адреса (маршрутизатора / шлюза) в .Net?

#c# #.net #system.net

#c# #.net #system.net

Вопрос:

Мне известно о NetworkChange.NetworkAddressChanged событии, но это только для локальных сетевых интерфейсов.

Какой наилучший способ определить, изменился ли общедоступный IP-адрес шлюза? Предположительно, это нужно сделать путем опроса внешнего надежного адреса, такого google.com …?

Комментарии:

1. Опрос звучит так, как будто это был бы лучший способ. Возможно, опросить / очистить сайт, подобный «whatismyip.com «…

Ответ №1:

Вот один из них от Akamai: http://whatismyip.akamai.com /

Ответ №2:

Если маршрутизатор поддерживает это, вы могли бы использовать SNMP для запроса его общедоступного IP-адреса (или, по крайней мере, когда я пытался это сделать, мне пришлось запрашивать все IP-адреса и отфильтровывать частные адреса). Вам нужно будет определить OID (идентификаторы объектов), которые соответствуют значениям IP-адреса, которые, я полагаю, должны быть одинаковыми для всех маршрутизаторов. Регулярно опрашивайте маршрутизатор и сравнивайте предыдущий результат с текущим результатом. В качестве альтернативы, настройте SNMP Trap, чтобы маршрутизатор уведомлял ваше приложение об изменении IP-адреса. Для реализации может потребоваться больше работы, чем простая обработка HTML-кода с веб-сайта «какой у меня IP», но это будет более эффективным, возможно, более надежным, не будет генерировать трафик глобальной сети, и вам не придется полагаться на веб-сайт, который вы не контролируете, который может нарушить работу вашего приложения, заблокировав вас или изменив структуру их HTML.

# SNMP — это библиотека SNMP с открытым исходным кодом для .NET.

Ответ №3:

Использование внешнего API — единственный надежный метод. Большинство из тех, кто раскрывает ваш IP-адрес, блокируют запрос, сделанный машиной, и запрашивают ввод CAPTCHA. Вот хороший вариант, который позволяет машинам отправлять запрос:

http://ip.nefsc.noaa.gov

Комментарии:

1. К сожалению, эта ссылка больше не работает, она возвращает «Извините, здесь нечего смотреть»