DNS—正、反向解析;委派;主從;子域;轉發;智能dns等的實現

来源:http://www.cnblogs.com/along21/archive/2017/10/12/7657793.html
-Advertisement-
Play Games

前言:DNS,耳熟能詳的東西,內容太多,小編也不太好講清,只能寫幾個實驗詳解,供大家參考。 一、簡單介紹 1、DNS:通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。 埠號:53/udp, 53/tcp 2、等級 根域 :世界有13個ip地址管理,有10個在美國,1個 ...


前言:DNS,耳熟能詳的東西,內容太多,小編也不太好講清,只能寫幾個實驗詳解,供大家參考。

一、簡單介紹

1、DNS:通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。

埠號:53/udp, 53/tcp

2、等級

根域 :世界有13個ip地址管理,有10個在美國,1個在日本,3個在歐洲,荷蘭,瑞典

一級功能變數名稱:Top Level Domain: tld

  com, edu, mil, gov, net, org, int,arpa

  三類:組織域、國家域(.cn, .ca, .hk, .tw)、反向域

二級功能變數名稱

三級功能變數名稱

最多127 級功能變數名稱

例如:www.baidu.com.

. 根

com 一級功能變數名稱,相當於子目錄

baidu

www

3、DNS伺服器類型

DNS 伺服器的類型:

DNS 伺服器:管理和維護所負責解析的域內解析庫的伺服器

DNS 伺服器:從主伺服器或從伺服器"複製"(區域傳輸)解析庫副本

 

4、資源記錄

資源記錄:Resource Record, RR

記錄類型:

SOA :Start Of Authority ,起始授權記錄;一個區域解析庫有且僅能有一個SOA 記錄,必須位於解析庫的第一條記錄,同步主從數據

A :internet Address ,作用,FQDN --> IP(名字到ip)

AAAA: FQDN --> IPv6

PTR: PoinTeR ,IP --> FQDN 全稱功能變數名稱(ip到名字)

NS: Name Server ,專用於標明當前區域的DNS 伺服器,誰是域的伺服器

CNAME :Canonical Name ,別名記錄

MX: Mail eXchanger 郵件

 

5、資源記錄定義的格式:(5項,如果下一條和上一天一樣,可以繼承)

語法:name   [TTL(緩存生存期)]   IN   rr_type   value (5列)

註意:

(1) TTL 可從全局繼承 (緩存生存期),例:$TTL 1D 一天 設為變數,下邊全部使用

(2) @ 可用於引用當前區域的名字,因為有特殊含義,所以後邊不能用,例如郵箱.

(3) 同一個名字可以通過多條記錄定義多個不同的值;此時DNS 伺服器會以輪詢方式響應

(4) 同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義;此僅表示通過多個不同的名字可以找到同一個主機


二、BIND安裝及named服務的介紹

DNS的實現就是named服務,named服務需要安裝bind包

1、BIND 的安裝配置:yum install bind -y

dns 服務程式包:bind ,unbound(新的)

程式名:named ,unbound

程式包:bind 

 

2、主配置文件:/etc/named.conf

(1)介紹

主配置文件:

全局配置:options {};

日誌子系統配置:logging {};

區域定義:本機能夠為哪些zone 進行解析,就要定義哪些zone

  zone "ZONE_NAME" IN {}; 資料庫文件最好不寫在這個主配置文件,寫在/etc/named.rfc1912.zones

 原理:就是在配置文件中設置區域定義zone,然後在zone指定的文件中建立資料庫,這些文件都放在/var/named下

 

3、options {};需要改的4個地方

① listen-on port 53 { 127.0.0.1; };  埠上只綁定自己ip

改為:listen-on port 53 { localhost; }; 或 // 註釋掉

② allow-query { localhost; }; 只允許自己訪問

改為:allow-query { any; };也可以不用any,公司內部允許哪些就加哪些,或 // 註釋掉

③ allow-transfer 是安全策略,為了防止任何人傳輸下載自己的dns信息,只允許自己的從dns同步

改為:allow-transfer { 允許傳輸的ip;};

④ 緩存名稱伺服器的配置:dnssec: 建議關閉dnssec ,設為no,影響委派和轉發

dnssec-enable no;
dnssec-validation no;

 

、測試命令及rndc命令

1、dig

dig [-t type] name [@SERVER] [query options]  

  dig 只用於測試dns 系統,不會查詢hosts 文件進行解析

查詢選項:

  +[no]trace程 :跟蹤解析過程 : dig +trace magedu.com

  +[no]recurse :進行遞歸解析

  測試反向解析:dig -x IP = dig -t ptr reverseip.in-addr.arpa

  模擬區域傳送:

  dig -t axfr ZONE_NAME @SERVER    抓區域資料庫,可以被allow-transfer  { 192.168.30.106;}; 防止

  dig -t axfr magedu.com @10.10.10.11

  dig -t axfr 100.1.10.in-addr.arpa @172.16.1.1

  dig -t NS . @114.114.114.114  測試郵件記錄

  dig -t NS . @a.root-servers.net  查根的伺服器,13個

 

2、host,查詢沒有dig詳細

host [-t type] name [SERVER]

host -t NS magedu.com 172.16.0.1

host -t soa magedu.com

host -t mx magedu.com

host -t axfr magedu.com

host 1.2.3.4

 

3、nslookup: (windows和linux都有這個命令)

命令: nslookup [-option] [name | -] [server]

互動式模式:

  nslookup>

  server IP: 指明使用哪個DNS server 進行查詢

  set q=RR_TYPE: 指明查詢的資源記錄類型

  NAME: 要查詢的名稱

 

4、rndc 命令

rndc:

  rndc --> rndc (953/tcp)

  rndc COMMAND

COMMAND:

  reload: 重載主配置文件和區域解析庫文件

  reload zonename: 重載區域解析庫文件

  retransfer zonename: 手動啟動 區域傳送, 而不管序列號是否增加

  notify zonename: 重新對區域傳送發通知,當主從同步過程發生意外時,

    例:rndc notify magedu.com

  reconfig: 重載主配置文件

  querylog: 開啟或關閉查詢日誌文件/var/log/message(預設不啟用日誌),排錯的時候才開啟,要不訪問一條加一條記錄,量太大了;關閉,執行同樣的命令

    tail -f /var/log/messages 動態查詢日誌

  trace: 遞增debug 一個級別

  trace LEVEL: 指定使用的級別,日誌級別,日誌的詳細程度

  notrace:為將調試級別設置為 0

  flush清空DNS 伺服器的所有緩存記錄

 

實驗:

實驗一:建立正向解析資料庫,實現域的解析,如:magedu.com

1、yum install bind   安裝包

systemctl start named     centos 7開啟服務

service named start           centos 6開啟服務

 

2、vim /etc/named.conf 修改總配置文件

listen-on port 53 { localhost; };

allow-query { any ;};

 

3、vim /etc/named.rfc1912.zones(最好在這個文件中修改,也可在/etc/named.conf總配置文件中修改)

zone "magedu.com" {

type master;

file "magedu.com.zone";

};

 

4、vim /var/named/magedu.com.zone 建立修改資料庫文件(這個文件名一定要和上邊的對應,可以自己寫,也可以複製模板)

$TTL 1D

@   IN   SOA dns1 mail.magedu.com. ( 2017100901 ; serial

                1D ; refresh

                1H ; retry

                1W ; expire

                3H ) ; minimum

@  NS dns1

dns1 A  192.168.37.107

www   CNAME websrv 設置的別名

websrv A 192.168.37.106

下麵都是記錄的例子:

[websrv A 192.168.37.107] 可以加多個,訪問時隨機,平衡負載

@ MX 10 mailsrv1 也可以加郵件記錄

@ MX 20 mailsrv2

mailsrv1 A 192.168.30.100

mailsrv2 A 192.168.30.200C

$GENERATE 1-100 server$ A 1.1.1.$

@ A 192.168.30.102 解決前面不輸入東西的問題,例:mage.com

* A 192.168.30.101 泛功能變數名稱解析,電商前面輸錯了ww.taobao.com,也能進淘寶網頁

 

註意:chgrp named /var/named/magedu.com.zone  如果不是cp -p 模板的,要註意修改許可權

named-checkzone magedu.com /var/named/magedu.com.zone 檢查這個資料庫文件有沒有錯

 

5、rndc reload 重新載入配置文件

6、測試ping、dig、host、links...都行

dig websrv.magedu.com @192.168.30.107

dig -t mx magedu.com @192.168.30.107 檢查郵件記錄

host adaf23.magedu.com 192.168.30.107 檢測泛功能變數名稱記錄

dig magedu.com @192.168.30.107

 

實驗二:建立反向解析資料庫(配置文件中都有例子)

1、2、同上

3、vim /etc/named.rfc1912.zones

zone "30.168.192.in-addr.arpa" IN { (倒過來寫,反過來讀)

type master;

file "192.168.30.zone";

};

 

4、vim /var/named/192.168.30.zone

$TTL 1D

@ IN SOA dns1 rname.invalid. (

              0 ; serial

              1D ; refresh

              1H ; retry

              1W ; expire

              3H ) ; minimum

NS dns1

dns1 A 127.0.0.1

107 PTR dns1.magedu.com.

106 PTR websrv.magedu.com.

100.30.168.192.in-addr.arpa. PTR dbsrv

 

 

5、rndc reload 重新載入配置文件

6、檢測

dig -x 192.168.30.107

 

實驗三:建立主從伺服器

1、vim /etc/named.conf 修改總配置文件

主:只允許從傳輸數據

listen-on port 53 { localhost; };

allow-query { any ;};

allow-transfer { 從DNS伺服器IP;};

從:不允許任何人傳輸數據

listen-on port 53 { localhost; };

allow-query { any ;};

allow-transfer { none;};

 

2、vim /etc/named.rfc1912.zones

主:

zone "magedu.com" {

type master;

file "magedu.com.zone";

};

從:

zone "magedu.com" IN {

type slave;

masters { 192.168.30.107;};

file "slaves/magedu.com.zone.slave";

};

 

3、vim /var/named/magedu.com.zone

主:加一條NS記錄

NS dns1

NS dns2

dns1 A 192.168.30.107

dns2 A 192.168.30.106

從:不用創建這個文件,重新載入數據會在/var/named/slaves 自動生成一個文件,內容和主dns一樣

 

4、rndc reload 重新載入配置文件

 

5、檢測

dig www.magedu.com @192.168.30.106

 

實驗四:建立子域

(1)主dns加A記錄充當子域,訪問量特別小

子域訪問量不大,主dns可以幫它管理,在主資料庫加一條A記錄,實際不是建立子域,只是用戶當做子域

1、vim /etc/named.conf 修改總配置文件

listen-on port 53 { localhost; };

allow-query { any ;};

 

2、vim/etc/named.rfc1912.zones

zone "magedu.com" {

type master;

file "magedu.com.zone";

};

 

3、vim /var/named/magedu.com.zone

加兩條A記錄:

www.henan A 2.2.2.2

mail.henan A 3.3.3.3

 

4、rndc reload 重新載入配置文件

5、檢測 dig www.henan.magedu.com @192.168.30.107

 

(2)在自己的建立獨機器上立的域,當子域

1、同上

2、vim/etc/named.rfc1912.zones

zone "henan.magedu.com" IN {

type master;

file "henan.magedu.com.zone";

};

 

3、vim /var/named/henan.magedu.com.zone 複製模板,自己寫都行

cp -p /var/named/magedu.com.zone /var/named/henan.magedu.com.zone

自己寫註意修改許可權

$TTL 1D

@ IN SOA dns1 mail.magedu.com. (

2017100901 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns1

dns1 A 192.168.30.107

www CNAME websrv

websrv A 5.5.5.5

4、5同上

 

(3)委派給其他機器(106)的域管理子域,訪問量大的時候

在本機上:父域主機

1、vim /etc/named.conf

關閉dnssec 功能:

dnssec-enable no;

dnssec-validation no

2、vim /var/named/magedu.com.zone

@ NS dns1

henan NS dns2

dns1 A 192.168.30.107

dns2 A 192.168.30.106

 

在另一個機器6上:子域主機創建henan.magedu.com的master區域

3、vim /etc/named.conf

關閉dnssec 功能:

dnssec-enable no;

dnssec-validation no

 

4、vim /etc/named.rfc1912.zones

zone "henan.magedu.com" IN {

type master;

file "henan.magedu.com.zone";

};

 

5、vim /var/named/henan.magedu.com.zone

$TTL 86400 ; 1 day

@ IN SOA dns1 mail.magedu.com. (

2017100901 ; serial

86400 ; refresh (1 day)

3600 ; retry (1 hour)

604800 ; expire (1 week)

10800 ; minimum (3 hours)

)

NS dns1

dns1 A 192.168.30.106

www CNAME websrv

websrv A 6.6.6.6

 

6、rndc reload 重新載入配置文件

7、檢測 dig www.henan.magedu.com @192.168.30.107 因為是委派,所以直接測107

 

實驗五:伺服器轉發

原理:要訪問www.qq.com,beijing的dns伺服器給zhengzhou、shanghai轉發

在6上建立qq.com的資料庫

1、vim /etc/named.rfc1912.zones

zone "qq.com" IN {

   type master;

   file "qq.com.zone";c

};

 

2、vim /var/named/qq.com.zone 自己寫(改許可權)或cp -p一個模板

$TTL 86400 ; 1 day

@ IN SOA dns1 mail.magedu.com. (

                2017100901 ; serial

                86400 ; refresh (1 day)

                3600 ; retry (1 hour)

                604800 ; expire (1 week)

                10800 ; minimum (3 hours)

)

NS dns1

dns1 A 192.168.30.106

www CNAME websrv

websrv A 6.6.6.6

 

在7上設置轉發

3、vim /etc/named.conf 設置全局轉發

forward only ;

forwarders {192.168.30.106;};

named-checkconf 寫完可以檢測總配置文件的語法

 

或設置特定區域轉發

vim /etc/named.rfc1912.zones

zone "qq.com" IN {

type forward;

forward first

forward { 192.168.30.106;};

};

 

4、rndc reload 重新載入配置文件

 

5、檢測

dig www.qq.com @192.168.30.107

dig www.baidu.com @192.168.30.107 only的情況下,如果6的資料庫沒有記錄,就不再詢問根;first的情況下,如果6的資料庫沒有記錄,7自己去詢問根

 

實驗六:包含子域、主從、委派的模擬dns整個過程的實驗

註意做實驗之前需:關閉防火牆,關閉selinux

vim /etc/named.conf 註釋兩項或改兩項

// listen-on port 53 { 127.0.0.1; };

// allow-query { localhost; };

listen-on port 53 { localhost; };

allow-query { any; };

改兩個no

dnssec-enable no;

dnssec-validation no;

 

1、從107 magedu 主 開始:

① vim /etc/named.con 主配置文件加一條

allow-transfer { 192.168.30.103;};

註釋或修改兩行

// listen-on port 53 { 127.0.0.1; };

// allow-query { localhost; };

② vim /etc/named.rfc1912.zones 資料庫配置文件

zone "magedu.com" IN {

type master;

file "magedu.com.zone";

};

 

③ vim /var/named/magedu.com.zone

$TTL 1D

@ IN SOA dns1 mail.magedu.com. (

2017100901 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns1

NS dns2

dns1 A 192.168.30.107

dns2 A 192.168.30.103

www CNAME websrv

websrv A 192.168.30.106

④ rndc reload

⑤ 測試

dig www.magedu.com @192.168.30.107

 

2、103 magedu.com 從:

① vim /etc/named.conf

註釋或修改2行

allow-transfer { none;}; 為了安全,不允許任何人傳輸信息

 

② vim /etc/named.rfc1912.zones

zone "magedu.com" IN {

type slave;

masters { 192.168.30.107;};

file "slaves/magedu.com.zone";

};

③ rndc reload

④ 測試

dig www.magedu.com @192.168.30.103

 

3、102 com:是被根委派,委派magedu的主107、從103

① vim /etc/named.conf

註釋或修改2行

為了不影響轉發、委派:改兩個no

dnssec-enable no;

dnssec-validation no;

 

② vim /etc/named.rfc1912.zones

zone "com" IN {

type master;

file "com.zone";

};

 

③ vim /var/named/com.zone

$TTL 1D

@ IN SOA dns1 rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns1

magedu NS dns2

magedu NS dns3

dns1 A 127.0.0.1

dns2 A 192.168.30.107

dns3 A 192.168.30.103

 

④ rndc reload

⑤ 檢測

dig www.magedu.com @192.168.30.102

 

4、101 根:委派com

① vim /etc/named.conf

註釋或修改2行

為了不影響轉發、委派:改兩個no

dnssec-enable no;

dnssec-validation no;

自己當根:

zone "." IN {

type master;

file "root.zone";

};

② vim /var/named/com.zone

$TTL 1D

@ IN SOA dns1 rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns1

com NS dns2

dns1 A 192.168.30.101

dns2 A 192.168.30.102

③ rndc reload

④ 檢測

dig www.magedu.com @192.168.30.101

 

5、104 第一個dns伺服器:委派

① vim /etc/named.conf

註釋或修改2行

為了不影響轉發、委派:改兩個no

dnssec-enable no;

dnssec-validation no;

 

② vim /var/named/named.ca 修改根伺服器資料庫

刪除其他的根記錄,留一個101的根A記錄

A.ROOT-SERVERS.NET. 3600000 A 192.168.30.101

 

③ rndc reload

④ 檢測

dig www.magedu.com @192.168.30.104

 

6、105 客戶端:

① 修改網卡配置,dns指向192.168.30.104

DNS1=192.168.30.104

② 重啟網路服務

service network restart

③ 檢測

dig www.magedu.com

links www.magedu.com

實驗全部結束!!!

 

實驗七:智能dns

原理:ACL的實現,和view視圖來匹配acl中的設置和zone資料庫信息

1、vim /etc/named.conf 在總配置文件中,加2條acl設置,acl設置要

acl henannet {

192.168.30.0/24;

192.168.31.1/24;

};

acl beijingnet {

172.17.0.0/16;

172.18.0.0/16;

};

 

2、vim /etc/named.conf 還是在主配置文件中,設置view關聯:acl和zone區域

有兩種方法:

方法一:直接就在主配置文件中設置好zone資料庫

方法二:在主配置文件中指向/etc/named.rfc1912.zones中,在這個文件中設置zone資料庫

view henanview {

match-clients { henannet;};

zone "magedu.com" {

type master;

file "magedu.com.zone.henan";

};

zone "." IN { //加個根zone,是為了能訪問外網

type hint;

file "named.ca";

};

};

view beijingview {

match-clients { beijingnet;};

include "/etc/named.rfc1912.zones.beijing";

zone "." IN {                 //加個根zone,是為了能訪問外網

type hint;

file "named.ca";

};

};

view otherview { //加一個other,不在那兩個view的也要能訪問

match-clients {any;};

include "/etc/named.rfc1912.zones";

};

 

3、若2採用了方法二,則需:

vim /etc/named.rfc1912.zones.beijing

zone "magedu.com" IN {

type master;

file "magedu.com.zone.beijing";

};

若有other,需:

vim /etc/named.rfc1912.zones

zone "magedu.com" IN {

type master;

file "magedu.com.zone";

};

 

4、在資料庫中隨便配置點設置,為了試驗測試結果明顯,可以把三個解析的地址寫為不同的

vim /var/named/magedu.com.zone

vim /var/named/magedu.com.zone.henan

vim /var/named/magedu.com.zone.beijing

$TTL 1D

@ IN SOA dns1 mail.magedu.com. (

2017100903 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns1

dns1 A 192.168.30.107

www CNAME websrv

websrv A 6.6.6.6

 

5、測試,測試的解析不一樣

dig www.magedu.com @192.168.30.107 測試henan

dig www.magedu.com @172.17.252.107 測試beijing

dig www.magedu.com @127.0.0.1 測試other

 

實驗有點多,中間也會有很多錯誤,如果有什麼不懂可以留言~

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.查看系統是否已經安裝git git --version 2.CentOS7 yum 安裝git yum install git ...
  • 1》Subversion版本控制簡介: Subversion(SVN)是一款自由開放的版本控制軟體,可以管理文件,文件夾以及記錄他們的修改狀況,常用來幫助我們管理軟體開發的源代碼或是公司手冊文檔。SVN通過將文檔導入至版本庫中進行管理,版本庫類似於文件伺服器,但比文件伺服器更強大的是,它可以記錄用戶 ...
  • 更新時間: Linux Usage 緣起:最近將系統更換為Linux,雖然之前有用過,但只是當作嘗試,未當為主系統,這次下定決心以它為主系統,懶得去糾結使用win的一種不道德感及不爽感,游戲及娛樂與人與己無益,放棄 https://mirrors.tuna.tsinghua.edu.cn/linux ...
  • 一.背景: arm linux的內核版本是3.13.0 二.準備工作 添加alsa驅動到內核中,也就是在編譯內核的時候加入以下選項: 接下來就重新編譯內核即可 三.交叉編譯alsa-lib和alsa-utils (alsa-utils是一系列的音頻設備控制工具,而alsa-lib是alsa-util ...
  • MongoDB資料庫基本用法 用戶相關 1、添加一個用戶 2、資料庫認證、安全模式 db.auth("userName", "123123"); 3、顯示當前所有用戶 show users; 4、刪除用戶 db.removeUser("userName"); show dbs:顯示資料庫列表 sho ...
  • fileclear.sh task.crontab task.null.crontab是一個沒有內容的空文件 開啟定時任務 停止定時任務 crontab [-u username] [-l|-e|-r] 參數: -u: 只有root才能進行這個任務,也即幫其他用戶新建/刪除crontab工作調度; ...
  • linux內核提供了一個container_of()巨集,可以根據結構體某個成員的地址找到父結構的地址。 而在Nginx也是效仿採用一樣的巨集獲取父結構地址。 ...
  • nginx可以在不停止服務的情況下,升級更新自己的bin文件,那這些是怎麼實現的呢,讓我們看一下nginx的源碼 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...