簡單來說,域名解析協(xié)議(DNS,Domain Name System)是一個(gè)應(yīng)用層協(xié)議,可以將域名和 IP 地址相互映射,使人更方便地訪問互聯(lián)網(wǎng),而不用去記住復(fù)雜的 IP 地址。
(相關(guān)資料圖)
DNS 協(xié)議建立在 UDP 或 TCP 協(xié)議之上,默認(rèn)使用 53 號(hào)端口??蛻舳四J(rèn)通過 UDP 協(xié)議進(jìn)行通訊,本文就以 UDP 協(xié)議進(jìn)行講解,不考慮報(bào)文長度超過了 512 字節(jié)使用 TCP 協(xié)議的情況。
了解了 DNS 的基本原理,我們就可以寫一個(gè)最簡單的?DNS 服務(wù)器了。在入門階段,這個(gè)簡單的 DNS 服務(wù)器,僅具有最基本的“代理”功能。
即我們的 DNS 服務(wù)器在接到客戶端發(fā)來的 DNS 請(qǐng)求后,直接將請(qǐng)求轉(zhuǎn)發(fā)到其他可用的 DNS服務(wù)器(如114.114.114.114)上,而不對(duì)報(bào)文做任何修改。待 DNS 響應(yīng)后,直接將響應(yīng)結(jié)果返回給 DNS 客戶端。
DNS 服務(wù)器需要 bind 到 53 端口,而且采用 UDP 協(xié)議。先導(dǎo)入 Python 標(biāo)準(zhǔn)庫:socket,用?socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
走的是 UDP 協(xié)議。
在 DNS 服務(wù)器運(yùn)行的邏輯中,使用?While True 循環(huán),一直接受來自客戶端的請(qǐng)求。接收到的數(shù)據(jù)是一個(gè)兩元組,解包得到報(bào)文消息和客戶端 IP 地址。
新建另一個(gè) socket 對(duì)象,直接將報(bào)文轉(zhuǎn)發(fā)給 114 DNS。
最后將響應(yīng)數(shù)據(jù)返回給客戶端,一次 DNS 請(qǐng)求處理完成。
完整代碼如下:
這樣,我們就實(shí)現(xiàn)了一個(gè)極其簡單的 DNS 服務(wù)器(或者說是DNS 代理服務(wù)器)。審視這十來行代碼,還是有很多不足之處:
單純轉(zhuǎn)發(fā)數(shù)據(jù),徒勞無功,不如直接請(qǐng)求 114 DNS;
無法自定義 IP 與域名映射,即自定義記錄;
沒有緩存機(jī)制,每次請(qǐng)求都要向 114 DNS 請(qǐng)求;
沒有處理客戶端請(qǐng)求的錯(cuò)誤,如請(qǐng)求超時(shí)等;
只能處理單個(gè)請(qǐng)求,沒有并發(fā)處理能力。
這些不足將會(huì)在以后的文章中加以改進(jìn),敬請(qǐng)關(guān)注。
超詳細(xì) DNS 協(xié)議解析:https://zhuanlan.zhihu.com/p/351059293
socket --- 底層網(wǎng)絡(luò)接口 — Python 3.11.1 文檔:https://docs.python.org/zh-cn/3/library/socket.html
DNS協(xié)議:https://www.jianshu.com/p/915de89d070e
標(biāo)簽: SOCKET MESSAGE CODING 代理服務(wù) python MAIN HTTPS 簡單來說
前言簡單來說,域名解析協(xié)議(DNS,DomainNameSystem)是一個(gè)應(yīng)用層...
光韻達(dá)1月19日在互動(dòng)平臺(tái)表示,子公司通宇航空近幾年?duì)I收和的利潤持...
前言1、本文由震川考研收集整理,不代表官方或?qū)嶋H數(shù)據(jù),統(tǒng)計(jì)或有錯(cuò)...
深秋深夜句子81句1 放眼一看,滿天的星星顯得很亂。但你仔細(xì)看,就...
國際貨幣基金組織(IMF)第一副總裁戈皮納特(GitaGopinath)周三在...
每經(jīng)記者:李可愚每經(jīng)編輯:陳旭1月17日,2022年中國經(jīng)濟(jì)“成績單”...
1、由董璇、張永強(qiáng)、劉爽、趙志剛、于連偉、宋楚言、許倩和劉磊主演...
原標(biāo)題:隨著國內(nèi)冰雪運(yùn)動(dòng)持續(xù)升溫,如何進(jìn)一步筑牢冰雪運(yùn)動(dòng)安全底...
格隆匯1月17日丨粵水電(002060)(002060 SZ)公布,近日,廣東水電二...
人民網(wǎng)太湖1月17日電(高飛躍、王銳)“以前每天待在家里,悶得慌。...
戲曲是中國文化的瑰寶之一,茶余飯后聽一段戲曲曾經(jīng)是很多古人非常...
虎牙公司CEO董榮杰在1月16日舉辦的公司線上年會(huì)回顧了過去一年的成...
專家稱,青少年受害者擔(dān)心自己惹上麻煩,一般會(huì)選擇向犯罪分子付款...
A股火力全開,過節(jié)氣氛算是拉滿了。今日,三大指數(shù)再次全線上漲,滬...
天眼查App顯示,近日,暴風(fēng)集團(tuán)股份有限公司及其法定代表人馮鑫新增...
科技日?qǐng)?bào)合肥1月15日電 (記者吳長鋒)15日,記者從中國科學(xué)技術(shù)大學(xué)
1、律師的收費(fèi)標(biāo)準(zhǔn)各地,每個(gè)人等不太一樣,提供法律咨詢一般收費(fèi)20...
金城醫(yī)藥(300233)01月15日在投資者關(guān)系平臺(tái)上答復(fù)了投資者關(guān)心的問題。
逛超市、買年貨、購新衣……春節(jié)快要到了,生活在安徽省銅陵市的烏...
2023第六屆平遙國家電影展門票購買入口:微信公眾平臺(tái)a)關(guān)注平遙國...
鍵盤還能玩出什么花活?軸體、鍵帽不停換,配列不停改,材質(zhì)變來變...
【阿斯利康與通用技術(shù)中國醫(yī)藥就新冠長效中和抗體藥物簽署戰(zhàn)略合作...
中國質(zhì)量新聞網(wǎng)訊近日,山東省臨沂市市場監(jiān)管局發(fā)布2022年第30-5期...
百億私募的2022:老牌隕落黑馬晉升
1月12日大農(nóng)業(yè)板塊較上一交易日下跌0 37%,天鵝股份領(lǐng)跌。當(dāng)日上證...
1、兩只倉鼠不可以一起養(yǎng),同性之間容易打架,異性共同生活時(shí)會(huì)大量...
中新經(jīng)緯1月12日電12日三大指數(shù)早間高開低走,滬指回落翻綠,創(chuàng)業(yè)板...
同花順數(shù)據(jù)中心顯示,國光電器1月11日獲融資買入1 46億元,占當(dāng)日...
新浪科技訊北京時(shí)間1月12日早間消息,據(jù)報(bào)道,知情人士透露,蘋果計(jì)...
一、離婚前夫妻債務(wù)造假,另一方可以向法院提交所收集的造假證據(jù),...
廣告
X 關(guān)閉
廣告
X 關(guān)閉