Как найти полное доменное имя локального узла в GO (golang)?Как найти полное доменное имя локального узла в GO (golang)?
BTW: net.LookupAddr() не работает в Windows. Так что это не вариант.
Как найти полное доменное имя локального узла в GO (golang)?Как найти полное доменное имя локального узла в GO (golang)?
BTW: net.LookupAddr() не работает в Windows. Так что это не вариант.
По умолчанию нет короткого пути.
os.Hostname() не предоставляет Полноценное доменное имя по умолчанию.
cmd := exec.Command("/bin/hostname", "-f")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Errorf(err)
}
fqdn := out.String()
fqdn = fqdn[:len(fqdn)-1] // removing EOL
Вы можете выполнить некоторые гимнастику, используя чистую LIB, как продемонстрировал here.
Nope. Это не вернет DNS-суффикс. –
Как вы получите информацию от ОС? В этом смысле нет ничего особенного. Установлена ли переменная среды USERDNSDOMAIN? – JimB
Это не сработает. Он обычно не установлен. Где получить DNS-суффикс подключения зависит от ОС. Есть api-вызовы или файл/etc. Я обнаружил, что Go не обеспечивает общий способ работы с ОС, чтобы получить его, и вам придется писать функцию самостоятельно для каждой ОС. Для окна Мне нужно вызвать системный вызов 'IpAdapterAddresses'; на linux мне придется разобраться, когда я переношу приложение в CentOS. –