68 lines
1.4 KiB
Bash
Executable File
68 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# rule_file->format2domain->domain_file_formated->sort->domain_file_sorted->domain_file+ip_file
|
|
|
|
domain_file_formated="/tmp/smartvpn_domain_format.tmp"
|
|
domain_file_sorted="/tmp/smartvpn_domain_sort.tmp"
|
|
#domain_file_smartvpn="/etc/smartvpn/smartdns.conf"
|
|
|
|
#ipset_name="smartvpn"
|
|
|
|
rule_file=$1
|
|
domain_file=$2
|
|
ip_file=$3
|
|
ipset_name=$4
|
|
dnsserver=$5
|
|
|
|
usage()
|
|
{
|
|
echo "gensmartdns.sh rule_file domain_file ip_file ipset_name [dnsserver]"
|
|
echo "-- rule_file : must specify"
|
|
echo "-- domain_file : must specify, writable, domain list output"
|
|
echo "-- ip_file : must specify, writable, ip list output"
|
|
echo "-- ipset_name : must specify"
|
|
echo "-- dnsserver : optional, default is 8.8.8.8"
|
|
echo ""
|
|
}
|
|
|
|
|
|
echo "gen arg list: "$*"!!!!!!!!!"
|
|
|
|
[ -z $rule_file ] && {
|
|
usage
|
|
return 1
|
|
}
|
|
|
|
[ -z $ip_file ] && {
|
|
usage
|
|
return 1
|
|
}
|
|
|
|
[ -z $dnsserver ] && {
|
|
dnsserver="8.8.8.8"
|
|
}
|
|
|
|
[ -z $ipset_name ] && {
|
|
ipset_name="smartvpn"
|
|
}
|
|
|
|
echo "gensmartdns: domain_file=$rule_file, ip_file=$ip_file, dnsserver=$dnsserver"
|
|
|
|
format2domain -f $rule_file -o $domain_file_formated -i $ip_file
|
|
[ $? -ne 0 ] && {
|
|
echo "format2domain error!"
|
|
return 1
|
|
}
|
|
|
|
sort $domain_file_formated | uniq > $domain_file_sorted
|
|
cat $domain_file_sorted | while read line
|
|
do
|
|
echo "server=/$line/$dnsserver"
|
|
echo "ipset=/$line/$ipset_name"
|
|
done > $domain_file
|
|
|
|
rm $domain_file_formated
|
|
rm $domain_file_sorted
|
|
echo "Gen smartdns conf done!"
|
|
|