dnsc語言
A. 怎樣通過C語言修改系統IP
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 50
typedef struct
{
char eth[N], ip[N], netmasks[20], gw[N], dns[N], tag[N];
}data;
int main()
{
data list[]=
{
{
"本地連接",
"222.22.65.173", //IP地址
"255.255.255.128",//子網掩碼
"222.22.65.129",//默認網關
"202.196.64.1",//首選DNS伺服器地址
"LAB"//這個配置的標簽
},
{
"本地連接",
"10.108.8.89",
"255.255.255.0",
"10.108.8.1",
"202.196.64.1",
"寢室"
}
};
int i, num=sizeof(list)/sizeof(data);
char temp[200], set[200];
for(i=0; i<num; i++)
printf("%d %s\n", i+1, list[i].tag);
printf("\n輸入需要修改至的IP編號\n");
while( scanf("%d", &i)!=1 || i>num || i<=0);
i--;
sprintf(set, "netsh interface ip set address \"%s\" static %s %s %s >nul",
list[i].eth, list[i].ip, list[i].netmasks, list[i].gw);
sprintf(temp, "& netsh interface ip set dns \"%s\" static %s & ipconfig & pause",
list[i].eth, list[i].dns);
strcat(set, temp);
system(set);
return 0;
}
B. 如何搭建dns伺服器 bind
一,簡介
相對於存儲和大數據領域,CDN是一個相對小的領域,但行行出狀元,BIND就是CDN領域的蟬聯N屆的狀元郎。BIND是一款非常常用的DNS開源伺服器,全球有90%的DNS用BIND實現。值得一提的是,BIND9.8.1用C語言實現,代碼量巨大,其設計實現幾乎涵蓋了伺服器編程的所有細節。
本文簡要介紹一下BIND9.8.1最簡單配置,其中穿插介紹BIND中的最基本概念,不涉及BIND的安裝部署,不涉及BIND架構等話題。
二,Zone文件和資源記錄Resource Record
介紹最簡配置前需要明確兩個配置中的概念:zone和RR。
BIND的配置文件描述了一個域名伺服器的所有屬性,這些屬性BIND的行為和功能。其中的zone文件描述了域名伺服器中包含的主機,所提供的服務類型等信息,BIND通過將zone文件中的信息載入到內存數據結構中並有效組織起來,然後對外部的DNS請求提供驗證和查詢請求。需要注意的是,zone文件的格式不是由BIND制定的,而是DNS標准文檔制定的(見RFC1035)。
通常情況下,一個zone文件描述該DNS伺服器服務的一個授權伺服器域。例如我有一個DNS伺服器可以解析taobao.com的域名和.com的域名,那麼我的DNS伺服器的配置文件中就可以設置兩個zone標簽,一個描述taobao.com的域名信息,另一個描述.com的域名信息。
資源記錄resource Record記錄了一個域(domain)的屬性和特性,注意,屬性是指共有的特徵,特性指特有的特徵。例如中國特色社會主義就是一個特性。
三,named.conf文件配置
named.conf是BIND的唯一的主配置文件,當然你也可以自己編寫主配置文件,但是需要在BIND主進程named啟動的時候用-c選項指定主配置文件的路徑。named.conf由一個個子句組成,每個子句都有一個頭跟一對大括弧組成,大括弧裡面是該子句中的因子和值(具體見下面的例子)。
下面的代碼是named.conf的一個最簡配置。其中假設named.conf只負責解析授權域名cobb.com。
其中的key是由rndc-confgen生成的。
1