追蹤
兔子也會的遊戲設計
關於部落格
一個推廣XNA與OGRE的園地,當然還有其他關於遊戲設計的主題,歡迎有興趣的同好交流指教
  • 104790

    累積人氣

  • 1

    今日人氣

    0

    追蹤人氣

淺談封鎖不同國家IP的做法

〈一〉登入伺服器在玩家登入上來的時候就對玩家IP做檢查,發現非屬於可允許的IP就拒絕登入。
   此種做法優點就是迅速明快,可以保證在第一時間剔除絕大多數的不合法來源玩家,但缺點就是伺服器負擔較大,無論是要先建表或是動態parse,都會造成伺服器loading加重,而且誤判的可能性較高造成玩家的不滿(IP位置變動率高)。

〈二〉在玩家登入時紀錄該帳號的最後登入IP,但並不給予檢查,放行登入遊戲,在後端工具定期抽樣對玩家進行IP掃描,如果發現不合法IP就將其帳號凍結,下次該玩家就無法登入遊戲。
            此種做法缺點是無法即時封鎖玩家的登入,優點就是不會造成登入伺服器的負擔,且能夠做二次確認,減低誤判的機率,還可以讓玩家先嘗鮮,等吊到玩家胃口再給予封鎖。
            個人傾向第二種做法,類似微軟對Xbox360的做法,軟改的玩家將在連上Live的時候隨機遭到鎖機,讓玩家無法得知何時會被封鎖,攻其不備。

至於要如何判別IP來自哪個國家,這裡提供兩個做法:
〈一〉連線到台灣網路中心(TWNIC)parse目標國家的IP,例如我只允許台灣玩家IP登入,就連到此網頁,會看到網段的起始位置與數量,以第一個為例,起始為58.86.0.0共有65536個位置,也就是58.86.0.0~58.86.255.255,如此分析完就可以建表來查表,此網頁約每個月更新一次,所以要做例行性的分析。

〈二〉到webhosting.info,這網站提供免費的IP資料庫,且不用註冊就可以下載,下載之後是csv檔,格式可以參考手冊,將csv轉成資料庫格式,用select的方式來搜尋,或是自己寫轉檔工具轉成二進位檔來處理會較為快速。


以上做法已經可以擋住絕大多數的不合法來源玩家,但針對少數有心人利用像是tor之類轉址來登入,由於是代理伺服器,會造成程式誤判,此時就需要針對這些代理伺服器名單作過濾,方法大同小異,只要有來源清單都不困難,如果有更好的做法也歡迎分享給我知道。
 


相簿設定
標籤設定
相簿狀態