Ищите программное обеспечение сервера DNS, которое предлагает функцию как myip.opendns.com
OpenDNS имеет настройку записи ресурса, поэтому, если вы запросите эту запись, он вернет IP-адрес ( ссылка).
Таким образом, вы можете использовать такую команду host myip.opendns.com 208.67.222.222
В результате вы получите IP-адрес компьютера, который вы используете, или публичный адрес, используемый NAT, за которым вы находитесь.
Я хотел бы знать, есть ли DNS-серверы с открытым исходным кодом, которые также могут выполнять эту функцию.
3 ответа
В моей среде evldns есть плагин, который может это сделать.
Демонстрация хаоса ответит на вопросы для client.bind
с IP-адресом клиента, либо в A
, AAAA
или же TXT
формат в зависимости от обстоятельств.
Это нестандартный RR. Если вы хотите сделать что-то более или менее портативное, взгляните на протокол STUN. Это довольно ужасно, но, по крайней мере, стандартно и было разработано специально для того, чтобы хост мог обнаружить свой собственный IP-адрес и порт, как это видно на сервере STUN. Доступны общедоступные серверы STUN, перечисленные здесь: http://www.voip-info.org/wiki/view/STUN. На этой же веб-странице есть указатели на клиентские библиотеки и серверное программное обеспечение.
Преимущество подхода, основанного на DNS, состоит в том, что вы можете использовать уже имеющиеся инструменты. Но поскольку он нестандартный, он не переносимый.