2012/09/17

OSXでDNS Serverを変更する

Mt. Lion(に限らず、OSX)では、/etc/resolv.conf は飾りなので、書き換えたところで実質的には意味が無い。Configure DNS lookups from the terminal - Mac OS X HintsにDNS Serverの変更方法が説明されている。それを参考に作ったスクリプトが、これ。
#!/bin/bash
if [ $# -lt 1 ]; then
    echo "$(/usr/bin/basename $0) DNSServer [DNSServer ...]"
    exit 1
fi
key=$(echo 'show State:/Network/Global/IPv4' | /usr/sbin/scutil | /usr/bin/awk '/PrimaryService/{print $3;}')
domain=$(echo "show State:/Network/Service/${key}/DNS" | /usr/sbin/scutil | /usr/bin/awk '/DomainName/{print $3;}')

/usr/sbin/scutil <<EOF
open
d.init
d.add ServerAddresses * $*
d.add DomainName ${domain:-localdomain}
set State:/Network/Service/${key}/DNS
quit
EOF

って、上記記事のコメントにも同じようなスクリプトが載っていたorz。まぁ、こっちは、割り当てられたDNS ServerがAAAA filterしちゃっているときに変更するのが目的なので、ドメイン名は既に割り当てられているものを使うようにしている。


0 件のコメント :

コメントを投稿

Comments on Google+: