特斯拉新款可能推 Model S 超跑版本 3秒加速至 96 公里

美國電動車商特斯拉 (Tesla) 即將在美國時間 10 月 9 日召開媒體大會,發表與字母「D」有關的神秘商品。特斯拉執行長 Elon Musk 一週前透過 Twitter 揭露相關訊息後,現在又再度透露了一點線索。   Vanity Fair 報導,Musk 8 日表示,特斯拉即將發表的神秘商品其實早就現身,只是人們都還沒有意識到而已。他說,網友非常會猜,方向大致都正確,但大家都還沒有意識到規模有多大。   Musk 的說法實在太過含糊,但最新的網路謠言也許可以讓大家稍稍解惑。Electrek 9 日引述訊息人士報導,特斯拉會在 9 日的大會上發表「P85D」,這是「Model S」的超跑版本,只要花 3 秒鐘就可把時速從零加快到 60 英里 (大約 96 公里),速度非常驚人。   根據報導,如此的表現已超越布卡堤 (Bugattis)、藍寶堅尼 (Lamborghinis)、麥拿倫 (Mclarens)、法拉利 (Ferraris)、保時捷 (Porsches) 等市面上最高級的超跑車種。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

2015年京津冀公共服務新能源車將達20222輛

22日,中國工信部、發改委及科技部等七部委聯合印發《京津冀公交等公共服務領域新能源汽車推廣工作方案》,提出2014年到2015年,京津冀地區公共交通服務領域共推廣20,222輛新能源汽車。其中北京市8,507輛,天津市6,000輛,河北省5,715輛,京津冀地區公交車中新能源汽車到2015年底比例不低於16%,京津出租車中新能源汽車比例不低於5%。   2014年到2015年,京津冀地區共新建充/換電站94座,充電樁新增1.62萬個。到2015年底,京津冀地區充換電站總數將達到112座,充電樁總數將達到19,657個,基本建成以保障運行為前提,建設規模適度超前的充電設施網絡。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

Day10-微信小程序實戰-交友小程序-創建friendList字段實現好友關係(添加好友功能)–內附代碼

回顧:之前我們進行了刪除的功能,以及對message消息的增刪,下面實現添加好友的功能

我們先在數據庫中,在message這個字段的list裏面,添加上測試號的id,就是模擬這個兩個測試號要加我主號的效果“

 

 

 

就可以達到這個效果了

 

下面我們正式開始實現

1、在removeList的wxml的昵稱結構處添加一個點擊事件handleAddFriend

2、在removeList.js中來實現這個點擊事件即可的,並且它也是要提示(讓用戶選擇確認的這種,所以就可以直接copy前面的刪除按鈕的代碼

 直接把hanleDelMessage函數裏面的:

   wx.showModal({
        title: '提示信息',
        content: '刪除消息',
        confirmText: "刪除",
        success: (res) => {
          if (res.confirm) {
            
          } else if (res.cancel) {
            console.log('用戶點擊取消')
          }
        }
      })
    }

也就是只用設計在點擊了確定之後的一些列操作即可了

3、因為要構建好友之間的關係,所以要在user裏面加一個friendlist字段才行了,並且這個字段的數據類型是數組的,因為好友肯定不只是一個

4、在數據庫中給每個人都添加一個friendList字段

 

 但是不要忘記了在原來的程序中 初始化 用戶的時候也要加上讀i這個字段的初始化才行的

打開user.js:

 

5、後面的事情大概的邏輯就是:同意了好友申請的話,這個用戶的id就會出現在這個用戶的friendList數組裡面了

所以就可以回到removeList.js文件中去了

6、通過在開頭的時候 設置 const _ = db.command 就可以讓這個文件有了運算的能力了

handleAddFriend(){
      wx.showModal({
        title: '提示信息',
        content: '申請好友',
        confirmText: "同意",
        success: (res) => {
          if (res.confirm) {
              db.collection('users').doc(app.userInfo._id).update({
                data:{
                    friendList : _.unshift(this.data.messageId)
                }
              }).then((res)=>{});
          } else if (res.cancel) {
            console.log('用戶點擊取消')
          }
        }
      })
    }
  }

 

 

在點擊消息之後,就可以選擇“確定”,點擊了之後,就可以在數據庫上面看到添加的用戶好友了

(以上就是第一步,把要申請的用戶的id給添加過來了)—-但是問題來了,我的主號裏面的friendList裏面有了這個申請人的id,但是這個申請人在我

同意了之後,它的friendList字段裏面也應該有我的主號的id才對的—也就是同時添加他們兩個的好友關係即可

 

 但是能不能通過上面的這種方式,把兩個變量之間的值作為交換就可以的,普通的數據庫裏面是可以這樣的。但是在小程序中式不可以這樣進行操作的

(因為在小程序裏面對數據庫的訪問式有權限的,在客戶端是組偶到這樣的操作

(也就是對其他的賬號進行更新操作的話在客戶端裏面是不允許的—同理也是要在服務端裏面來實現的))

–也就是要用雲函數來實現了

7、如果要像的客戶端中調用unshift一樣的話在服務端裏面進行調用的話,之前也搞過就是用一個模板字符串的寫法 用Esc下面的那個 “類單引號”的符號

來進行包裹就好了

 wx.cloud.callFunction({
            name : 'update',
            data : {
              collection : 'users',
              doc : this.data.messageId,
              data : {
                friendList: ` _.unshift('${app.userInfo._id}')`
              }
            }
          });

 

 出現的錯誤就是,我們把unshift也一起搞過來了,也就是我們傳過去的字符串沒有解析成功

 主要就是下面這裏寫錯了

 data : `{ friendList:  _.unshift('${app.userInfo._id}')}`

是把後面整個的串都用一個`   ….   `來圍住的(也就是後面整個的json對象都直接被這個符號扣住的)

 

修改了之後就成功了

 

8、新建一個removeMessage 函數,可以直接copy上面的handledelMessage方法裏面的:這個函數主要是為了點擊這個消息加好友的時候,可以選擇是

添加它為好友,就是在點擊了添加好友之後,就要把這個消息刪掉了,所以這兩個地方都用到了這個功能的話,就可以把這個功能封裝在removeMesage函數裏面,如何直接用this.removeMessage來調用即可了

效果就是:點擊了添加它為好友之後,這個申請為好友的消息就會被刪掉了

 

 

db.collection('message').where({
            userId : app.userInfo._id
          }).get().then((res)=>{
              // console.log(res);
              let list = res.data[0].list;
            console.log(list);
              list = list.filter((val , i)=>{
                  return val != this.data.messageId
              });
              // console.log(list);
              wx.cloud.callFunction({
                name : 'update',
                data : {
                  collection : 'message',
                  where : {
                    userId : app.userInfo._id
                  },
                  data : {
                    list : list
                  }
                }
              }).then((res)=>{
                this.triggerEvent('myevent',list) 
              });
          });

 

 整體邏輯:

1、在removeList.wxml 中的昵稱中添加一個點擊事件 

<movable-view bindtap="handleAddFriend" direction="horizontal" class="view">{{ userMessage.nickName }}</movable-view>

2、在removeList.js中隊這個點擊事件進行渲染

 handleAddFriend(){
      wx.showModal({
        title: '提示信息',
        content: '申請好友',
        confirmText: "同意",
        success: (res) => {
          if (res.confirm) {
              db.collection('users').doc(app.userInfo._id).update({
                data:{
                    friendList : _.unshift(this.data.messageId)
                }
              }).then((res)=>{});

          //其他用戶和我構成好友的關係,用到客戶端來實現(也就是用雲函數來實現)
          wx.cloud.callFunction({
            name : 'update',
            data : {
              collection : 'users',
              doc : this.data.messageId,
              data : `{ friendList:  _.unshift('${app.userInfo._id}')}`
            }
          }).then((res)=>{});
          this.removeMessage();
          } else if (res.cancel) {
            console.log('用戶點擊取消')

          }
        }
      })
    }

3、點擊了接受邀請之後,把這個申請好友的消息刪除(和之前實現刪除功能一樣,就可以直接把這個功能封裝到removeMessage這個函數裏面

removeMessage(){
      //也就是點擊了確定的話,就不提示這個了,而是刪除信息
      //  目前沒有直接更新的,智能是這個過程就變成了先查詢然後再更新
      db.collection('message').where({
        userId: app.userInfo._id
      }).get().then((res) => {
        // console.log(res);
        let list = res.data[0].list;
        console.log(list);
        list = list.filter((val, i) => {
          return val != this.data.messageId
        });
        // console.log(list);
        wx.cloud.callFunction({
          name: 'update',
          data: {
            collection: 'message',
            where: {
              userId: app.userInfo._id
            },
            data: {
              list: list
            }
          }
        }).then((res) => {
          this.triggerEvent('myevent', list)
        });
      });

注意:因為我們開通了一個friendList 給每一個用戶數據庫字段,所以在user.js初始化用戶數據庫的時候也要加上初始化這個friendList數組才行

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

關於對Entity Framework Core3.1的理解與總結

Entity Framework Core 是一個ORM,所謂ORM也是ef的一個框架之一吧,簡單的說就是把C#一個類,映射到數據庫的一個表,把類裏面的屬性映射到表中的字段。然後Entity Framework Core3.1 是一個長期支持的版本。本人非常樂意對.NET社區繁榮奉獻自己的青春。希望國內以後能夠有越來越多的.NET程序員。

創建了一個.NET Standard類庫。

可以編輯文件查看netStandard版本號,我這裡是一個2.0版本。

順便簡單的說一下netStandard吧,實際上它應該就是一個開源庫,不管是.NET Core還是EntityFramework都可以引用它。就是一個底層類庫,並且該類庫可以在不同的平台運行,ios、mac、linux等。一處編寫多處運行,而且它還是開源的。當然這裏你可以把它改成2.1的版本。

 右鍵項目屬性

這樣就該好了。。。

然後又創建了一個類庫,操作和上面一樣,另一個是創建一個控制台應用,這個控制台應用是.NET Core應用的,版本應該是netcoreapp3.1,可以看看

以上準備工作完成后,就開始進行第一步操作,生成數據庫!

在Demo.Main類庫中創建所需要的類

這裏我就簡單的舉個栗子。一個聯賽類,一個是俱樂部類,一個是球員類,分別是一對多的關係。

namespace Demo.Main
{
    /// <summary>
    /// 聯賽
    /// </summary>
    public class League
    {
        public int  Id { get; set; }
        public string Name { get; set; }
        public string Country { get; set; }
    }
}
using System;
using System.Collections.Generic;

namespace Demo.Main
{
    /// <summary>
    /// 俱樂部
    /// </summary>
    public class Club
    {
        public Club()
        {
            Players=new List<Player>();//以防出現空指針引用
        }
        public int Id { get; set; }
        public string Name { get; set; }
        public string City { get; set; }
        /// <summary>
        /// 俱樂部成立日期
        /// </summary>
        public DateTime Establishment { get; set; }
        public string History { get; set; }
        /// <summary>
        /// 聯賽導航屬性
        /// </summary>
        public League League { get; set; }
        /// <summary>
        /// 一對多,一個俱樂部有多個球員
        /// </summary>
        public List<Player> Players { get; set; }
    }
}
using System;

namespace Demo.Main
{
    /// <summary>
    /// 球員
    /// </summary>
    public class Player
    {
        public int Id { get; set; }
        public string Name { get; set; }
        /// <summary>
        /// 球員出生日期
        /// </summary>
        public DateTime DateOfBirth { get; set; }
    }
}

然後就是在Data中引用Main的項目庫

對Data類庫安裝對數據庫操作的相關依賴,也就是方便對Model映射到數據庫。顯而易見,Data類庫就是操作對Model映射到數據的Code first數據庫遷移操作的。

所以必然是少不了上下文類的編寫和操作了。

接下來就是準備遷移操作了,但是對於Demo.Data類庫來說它是一個底層的類庫,所以我們就得通過Demo.App一個控制台應用來去生成數據庫,然後就要通過NuGet包進行一個引用了。

需要對數據庫操作進行可執行文件的操作需要引用一下依賴吧可以說是

這個就裝在Demo.Data項目中

這裏就可以看到它為什麼對數據庫遷移起到作用了

點擊下載即可,而後才能執行數據庫遷移操作

記得在遷移時一定要選擇上下文存在的類的項目也就是Data

然後就是用命令來操作包管理工具了,來具體總結一下吧!

你可以通過給的提示輸入命令也就是get-help NuGet查看具體的一些幫助命令

主要命令應該就是這些,具體解釋可以再去看看

或者輸入get-help entityframework,結果如下,我們用到的就是Add-Migration(添加遷移)、Update-Database(更新數據庫)這兩個應該就是比較常用的了。

輸入第一個命令 Add-Migration 這裏需要給個參數(實際上有很多參數)這個參數就是會在生成的時間戳後面定義的Name參數

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

黃金博物館推「山城治癒術」文青遊程 瑞典網紅慕名而來

來自瑞典的YouTuber盧卡斯,時常在頻道上介紹臺灣之美給外國旅客。日前受到邀請搶先體驗新北市立黃金博物館「山城治癒術新北清潔」9月份遊程內容。超喜愛水金九自然美景與文化的盧卡斯說,他造訪水湳洞至少5、6次了,但這次特別跟台北網頁設計著在地達人的腳步來到海岸邊,尋找水湳洞山城居民過去取用山泉水的淨水出水口。盧卡斯從不知網頁設計公司道轉個彎就可以發現這個在地人的獨家秘境!長年維持在18度的水源清澈甘甜,遊程還規劃在海邊喝杯好茶、享受美景,讓他台北網頁設計大讚這是夏天最棒的體驗了。

黃金博物館館長王錦華表示,今年度推出的「山城治癒術」遊程,相當受到民眾的喜愛。9月份的遊程iphone維修,黃金博物館以「後青春的山海派對」為主題,為大學生和年輕族群推出「一場聆聽山林聲音的瑜伽課」、「嘿,我們到海邊喝杯銷售文案茶!」及「從半屏溪回溯採金路」三條路線,邀請青年朋友在暑假結束前一起到戶外走走,感受水金九地區美麗且療癒的自然美景。

YouTuber盧卡斯體驗的是「嘿,我們到海邊喝杯茶!」,民眾將能走訪如何寫文案水湳洞聚落,並在海邊茶席品茶,享受被海洋、山脈環繞的自然饗宴。另外,「一場聆聽山林聲音的瑜伽課」為山城少見的瑜伽課程,新北清潔在金瓜石的特色小學「瓜山國小」體驗戶外瑜伽帶給身心靈的舒緩與療癒,租車並學習如何用植物自製飾品。第三條路線「從半屏溪回溯採金路」,由專業教練帶領大家從海岸邊溯溪而上,走進名為大鬼瀑布的奇幻秘境,看見大自然的鬼斧神工。

水金九地區擁有豐富的歷史文化,更以獨特的自網頁設計然美景聞名世界。歡迎喜愛深度旅行、愛好大自然的年輕朋友來一場青春山海線「山城治癒術」小旅行,一起抓新北清潔緊夏天的尾巴!每場次限額15名,即日起開放報名。

慶北投梅庭10週年   8/12于右任墨寶真跡展出

北投梅庭曾為「一代草聖」于右任先生之避暑別館,平時陳列于右任先生墨寶,今年適逢北投梅庭開館10週年,臺北市政府觀光傳播局特別策劃「臺灣書法回顧展」向于右任先生致敬。展覽於今(12)日登場,作品以「修身養性、延年益壽」為主軸,展出如何寫文案影響臺灣當代書法發展之先輩作品,傳承書法藝術之美。

本次特展特別邀請到淡江大學張炳煌教授指導策展,銷售文案擇選臺灣已故20位書法家經典作品進行展出,最大亮點為觀光傳播網頁設計局典藏的于右任墨寶真跡,及由張教授提供其收藏臺灣水墨大師張光賓、陳雲程及曾跟隨于右任編修「標準草書」,與其有著深厚情誼的「劉延濤」先生之作品。

除此之外,展覽還有關於于右任重要事蹟及標準草書寫法之影片,供民眾欣賞。

特展開幕活動由「雙金長笛演奏家」台北網頁設計華姵與張炳煌教授跨界演網頁設計公司出《一起「聽」書法》,iphone維修結合音樂與書法的表演展現不同於以往藝術之美,為特展系列活動揭開序幕。

臺北市觀傳局專門委員沈永華表示,北投以得天獨厚資源發展出馳名中外的溫泉文化,在世界級的《米其林旅遊指南》中更被評鑑為來臺灣必定造訪的三星級景點之一,北投地區也獲選為交通部觀光局2019臺灣經典小鎮,是觀光客常到訪的地方,除了休閒遊憩,租車北投也是一個充滿藝文氣息的地方,北投梅庭除了平時館內的于右任常設展外,每年也規劃不同類型的特展,吸引眾多國內外遊客到訪北投。

本次特展除展覽及影片欣賞外,特別製作「梅庭」明信片,凡遊客填寫藝起來梅庭問卷,新北清潔即有機會獲得限量梅庭明信片,對梅庭及書法有興趣的民眾絕對不能錯過。

「臺灣書法回顧展」自109年8月12日至12月20日展出,8月15日(星期六)下午1時舉辦由中華民國書學會主講「于右任書法再現講座」以及書法體驗活動,邀請民眾一同體驗書法揮毫的樂趣;另於8月16日(星期日)下午2時30分舉辦臺灣書法回顧展特展台北網頁設計音樂會,邀請到北投在地歌星「李麗華」,帶來午後音樂饗宴。展出訊息內容請查詢臺北旅遊網(https://www.travel.taipei/)

首次護照申辦便民一處服務 全國戶政8/12正式開辦

外交部與內政部合作「首次申請護照親辦一處收件全程服務便民措施」,12日正式擴大推展至全國各戶政事務所同步開辦,以「線上傳輸」取代「人力遞送」,秉持單一收件、全程服務,有效降低錯誤率及節省戶所人力負擔,落實數位國家智慧服務理念,同時鼓勵民眾申辦自動通關,體驗更便捷的出國經驗。

桃園市長鄭文燦11日上午9時30分在市府民政局長陳靜航、秘書處長顏子傑、桃園區長陳玉明的陪同中,前往桃園區戶政事務所,出席「首次申請護照親辦一處收件全程服務便民措施」全國開辦活動,內政部政務次長陳宗彥、外交部政務次長曾厚仁、外交部領事事務局長葉非比、立法委員呂玉玲、黃世杰、湯蕙禎、市議員陳美梅、黃家齊也到場參加。

鄭文燦市長指出,台灣有良好的戶政系統、身分識別及資訊化能力,護照申辦亦是基本的為民服務,桃園早於去(108)年2月15日起,即以人力遞送方式,提供代收、代辦、代領「首次申請護照親辦一處收件全程服務便民措施」,執行期間約計有1萬8,437件,成效良好。

今(109)年3月16日起,外交部與內政部擇定桃園各戶政事務所及台中市、雲林縣、嘉義市、屏東縣、澎湖縣等地部分戶政事務所參與試辦,以線上傳輸取代人工遞送,雖受疫情影響送件數較少,但桃園戶政資料庫及勾稽系統運作良好,仍有552件申請案,約為人工試辦階段的三分之一。

鄭文燦也鼓勵國人利用疫情期間,預先申辦好護照,銷售文案同時申請自動通關,不僅可體驗「類出國」樂趣,也盼未來國人往返國外觀光旅遊、就學或進行商貿活網頁設計公司動時,在護照核發、機場通關時都能享有更便捷的服務。

內政部政務次長陳宗彥表示,全台台北網頁設計設有231個戶所,將近5,400位戶所同仁,網頁設計完整的戶政系統及資料庫,可有效協助國人護照申辦作業。自100年起,內政部啟動人別確認系統,為了提升便民申辦服務,包括桃園的各縣市,於去年陸續推動首次申請護照代收、代辦業務,今年3月16日起,外交部與內政部擇定戶所及民政體系服務良好的桃園及其他各縣市戶所參與試辦,獲得不少好評,因此今日擴大至全國開辦,盼國人於疫情期間,先行分散申辦,待疫情緩解、國境解封後,即可體驗出國樂趣。

外交部政務次長曾厚仁表示,台灣晶片護照技術先進且具難以偽造的安全性,在全球深受歡迎,iphone維修國人至約150個國家訪問參觀,可享免簽證及落地簽證等待遇。外交部與內政部合作「首次申請護照親辦一處收件全程服務便民措施」初期設計未臻完台北網頁設計善,逐步調整改善後,打造今日適用全國開辦的2.0版本,一站式服務新北清潔每年約可嘉惠40萬名首次申辦護照的民眾,節省兩地奔波的時間和金錢,盼將服務發揮最大效益,藉此回饋同仁多時的努力和付出。

民政局長陳靜航則表示,「首次申請護如何寫文案照親辦一處收件全程服務」便民措施,針對首次申請護照到戶政事務所辦理人別確認的民眾,進一步提供代送申請、代領護照的「一站式」服務。首次申請護照的民眾,可備妥文件到戶政事務所送件,並可選擇在同一個戶政事務所領取護照,或是自付郵資將護照寄到指定的地址。

戶政事務所將護照申請資料上傳到外交部審核及製發護照,民眾只要持戶政租車事務所開立的繳款證明單到指定的5大超商、郵局或農漁會繳納護照規費(每件須另付手續費15元),在繳費後8個工作天,即可依選擇的領照方式到原送件的戶政事務所領取護照,或是在護照寄達指定地址時自付快遞費用。

陳靜航指出,若首次申請護照又急需使用的民眾,仍可至各戶政事務所辦理人別確認後,再委託親屬、同事或旅行社代為到外交部領事事務局、中部、南部、雲嘉南或東部辦事處送件申請,或親自到上述外交部各申辦地點送件。此外,外交部為鼓勵民眾多加利用「一站式」的申辦流程,凡自即日起至12月11日止,到戶政事務所採用「一站式」申辦護照的申請人,都將自動列入抽獎名單,並於年底舉辦抽獎致贈精美小禮物1份。

DNS篇(詳解DNS)

*文章來源:https://blog.egsec.cn/archives/601

*本文將主要說明:本文主要敘述什麼是DNS、域名的層級、DNS 解析過程、DNS的緩存時間、DNS 的記錄類型、DNS 報文結構、DNS劫持與HTTP劫持以及手動清理本地緩存的方法。

 

DNS屬於應用層。DNS即域名系統,其作用是將字符串域名解析成相對於的服務器IP地址,免除人們記憶IP地址的單調和苦惱,屬於為用戶排憂解難之舉,因此劃歸為應用層。DNS不屬於協議,它是域名解析。

 

什麼是DNS

DNS是 Domain Name System 的縮寫,也就是 域名解析系統,它的作用非常簡單,就是根據域名查出對應的 IP地址。

你可以把它想象成一本巨大的電話本,比如當你要訪問域名www.egsec.cn,首先要通過DNS查出它的IP地址是118.31.61.137。

域名層級

DNS 的解析過程中,需要對域名的層級有了解:

  • 根域名 :.root 或者 . ,通常是省略的
  • 頂級域名,如 .com,.cn 等
  • 次級域名,如 baidu.com 里的 baidu,這個是用戶可以進行註冊購買的
  • 主機域名,比如 baike.baidu.com 里的baike,這個是用戶可分配的 
主機名.次級域名.頂級域名.根域名
baike.baidu.com.root

DNS 解析過程

咱們以訪問 www.egsec.cn 這個域名為例,來看一看當你訪問 www.egsec.cn 時,會發生哪些事:

  1. 先查找本地 DNS 緩存(自己的電腦上),有則返回,沒有則進入下一步
  2. 查看本地 hosts 文件有沒有相應的映射記錄,有則返回,沒有則進入下一步
  3. 向本地 DNS 服務器(一般都是你的網絡接入服務器商提供,比如中國電信,中國移動)發送請求進行查詢,本地DNS服務器收到請求后,會先查下自己的緩存記錄,如果查到了直接返回就結束了,如果沒有查到,本地DNS服務器就會向DNS的根域名服務器發起查詢請求:請問老大, www.egsec.cn 的ip是啥?
  4. 根域名服務器收到請求后,看到這是個 .cn 的域名,就回信說:這個域名是由 .cn 老弟管理的,你去問他好了,這是.cn老弟的聯繫方式(ip1)。
  5. 本地 DNS 服務器接收到回信后,照着老大哥給的聯繫方式(ip1),馬上給 .cn 這個頂級域名服務器發起請求:請問 .cn 大大,www.egsec.cn 的ip 是啥?
  6. .cn 頂級域名服務器接收到請求后,看到這是 egsec.cn 的域名,就回信說:這個域名是 .egsec.cn 老弟管理的,你就去問他就行了,這是他的聯繫方式(ip2)
  7. 本地 DNS 服務器接收到回信后,按照前輩的指引(ip2),又向 .egsec.cn 這個權威域名服務器發起請求:請問 egsec.cn 大大,請問 www.egsec.cn 的ip是啥?
  8. egsec.cn 權威域名服務器接收到請求后,確認了是自己管理的域名,馬上查了下自己的小本本,把 www.egsec.cn 的ip告訴了 本地DNS服務器。
  9. 本地DNS服務器接收到回信后,非常地開心,這下總算拿到了www.egsec.cn的ip了,馬上把這個消息告訴了要求查詢的客戶(就是你的電腦)。由於這個過程比較漫長,本地DNS服務器為了節省時間,也為了盡量不去打擾各位老大哥,就把這個查詢結果偷偷地記在了自己的小本本上,方便下次有人來查詢時,可以快速回應。

總結起來就是三句話:

  • 從”根域名服務器”查到”頂級域名服務器”的NS記錄和A記錄(IP地址)
  • 從”頂級域名服務器”查到”次級域名服務器”的NS記錄和A記錄(IP地址)
  • 從”次級域名服務器”查出”主機名”的IP地址

DNS的緩存時間

上面的幾個步驟里,可以看到有兩個地方會緩存 DNS 的查詢記錄,有了緩存,在一定程度上會提高查詢效率,但同時在準確率上會有所損失。

因此我們在配置 DNS 解析的時候,會有一個 TTL 參數(Time To Live),意思就是這個緩存可以存活多長時間,過了這個時間,本地 DNS 就會刪除這條記錄,刪除了緩存后,你再訪問,就要重新走一遍上面的流程,獲取最新的地址。

DNS 的記錄類型

當我們在阿里雲買了一個域名后,可以配置我們主機域名解析規則,也就是 記錄。  

阿里雲域名雲解析(不管是哪個服務商都一樣):

常見的 DNS 記錄類型如下

  • A:地址記錄(Address),返回域名指向的IP地址。
  • NS:域名服務器記錄(Name Server),返回保存下一級域名信息的服務器地址。該記錄只能設置為域名,不能設置為IP地址。
  • MX:郵件記錄(Mail eXchange),返回接收电子郵件的服務器地址。
  • CNAME:規範名稱記錄(Canonical Name),返回另一個域名,即當前查詢的域名是另一個域名的跳轉,詳見下文。
  • PTR:逆向查詢記錄(Pointer Record),只用於從IP地址查詢域名,詳見下文。

DNS報文結構

  1. 事務 ID:DNS 報文的 ID 標識。對於請求報文和其對應的應答報文,該字段的值是相同的。通過它可以區分 DNS 應答報文是對哪個請求進行響應的。
  2. 標誌:DNS 報文中的標誌字段。
  3. 問題計數:DNS 查詢請求的數目。
  4. 回答資源記錄數:DNS 響應的數目。
  5. 權威名稱服務器計數:權威名稱服務器的數目。
  6. 附加資源記錄數:額外的記錄數目(權威名稱服務器對應 IP 地址的數目)

DNS劫持與HTTP劫持

通過上面的講解,我們都知道了,DNS 完成了一次域名到 IP 的映射查詢,當你在訪問 www.egsec.cn 時,能正確返回給你 我網站首頁的 ip。

但如果此時 DNS 解析出現了一些問題,當你想要訪問 www.egsec.cn 時,卻返回給你 www.baidu.com 的ip,這就是我們常說的 DNS 劫持。

與之容易混淆的有 HTTP 劫持。

什麼是 HTTP 劫持?

你一定見過當你在訪問 某個網站時,右下角也突然彈出了一個扎眼的廣告彈窗。這就是 HTTP 劫持。

藉助別人文章里的例子,它們倆的區別就好比是

  • DNS劫持是你想去機場的時候,把你給丟到火車站。
  • HTTP劫持是你去機場途中,有人給你塞小廣告。

DNS劫持 是如何產生的?

下面大概說幾種DNS劫持方法:

1.本機DNS劫持

攻擊者通過某些手段使用戶的計算機感染上木馬病毒,或者惡意軟件之後,惡意修改本地DNS配置,比如修改本地hosts文件,緩存等

2. 路由DNS劫持

很多用戶默認路由器的默認密碼,攻擊者可以侵入到路由管理員賬號中,修改路由器的默認配置

3.攻擊DNS服務器

直接攻擊DNS服務器,例如對DNS服務器進行DDOS攻擊,可以是DNS服務器宕機,出現異常請求,還可以利用某些手段感染dns服務器的緩存,使給用戶返回來的是惡意的ip地址

如何在本地查詢 DNS 解析結果?

nslookup命令:

命令格式:nslookup [查詢的域名] [指定DNS服務器]

你也可以指定公網的域名服務器進行查詢,比如常見的 114.114.114.114

手動清理DNS緩存

MacOS:

sudo dscacheutil -flushcache
$ sudo killall -HUP mDNSResponder

Windows:

$ ipconfig /flushdns

Linux:

使用NSCD的DNS緩存
$ sudo /etc/init.d/nscd restart

# 服務器或者路由器使用DNSMASQ
$ sudo dnsmasq restart

  

DNS詳解篇完

轉發請註明出處(EG Blog:blog.egsec.cn),謝謝!

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

世界最快螞蟻 步頻是波爾特10倍以上

摘錄自2019年10月17日自由時報報導

報導,德國烏爾姆大學(University of Ulm University)生物行為專家普費弗(Sarah Pfeffer)所率領的團隊,發現撒哈拉銀蟻是世界上最快的螞蟻,每秒秒速將近1公尺,看起來雖然不多,但驚人步頻(跑步時腳步交換的頻率)可是世界百米紀錄保持人波爾特(Usain Bolt)的10倍以上。

撒哈拉銀蟻可以用每秒47步跑完85.5公分,這距離達到了牠們體長的108倍之多,如果拿家貓的體型來比喻的話,撒哈拉銀蟻的速度大約是貓貓以時速193公里奔跑。這是因為牠們全速奔跑時,6隻腿會一起騰空再落地,看起來就像是在短暫飛行,在每次換步時,銀蟻每條腿的觸地時間不到7毫秒。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

「敢檢討核電海嘯對策就開除你喔!」 解析處處矛盾的福島核災判決

文:宋瑞文(媽媽監督核電廠聯盟特約撰述)

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準