#!/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しちゃっているときに変更するのが目的なので、ドメイン名は既に割り当てられているものを使うようにしている。