會員中心 | iThome online | iT邦部落格 | 小7聚樂部 | iThome download | apphome

載入中...

michelle

iT邦初學者
9級

如何查詢地區性的所有IP網段 ?

比如整個上海或整個香港 IP 段. 要怎查 ?
像一些遊戲公司他們是怎擋海外 IP 或擋大陸 IP 段的 ?
要怎找 ? 感謝

不是整部 server 擋喔, 因為公司的server 是拿 HP 用 VM 當 OS.
其中一個虛擬 server 裡的 IIS 管理員 ==> 打開後本機下有一堆網站.
是其中一個網站想在內容的目錄安全設定裡設定限制某區域的 IP 來訪存取.

2010-02-02 20:12:41 補充

不要叫我去中華電信申請 Router 上擋 IP 來源. 那整個server 所有網
站不就通通擋掉了. 只是其中一個網站要設而已. 3Q 喔.

2010-02-02 20:27:29 補充


發佈到:發佈到Facebook 發佈到噗浪 發佈到twitter
分享時間:2010-02-02 18:52:12
▼ ADVERTISEMENT ▼

最佳解答(發問者自選)
7
iT邦幫忙MVP

回答:twtw ( iT邦大師8級 )

時間:2010-02-03 09:13:28

簡言之:
利用 GeoIP 來判斷IP從何國家而來。

一般的作法:
通常是利用API來查詢 GeoIP 的資料庫檔案
根據查詢結果來決定要做什麼樣的回應。
以下是用 Ruby 的範例,查詢所會獲得的回應:
$ irb -rubygems -rgeoip
irb(main):001:0> g = GeoIP.new('GeoIP.dat')
=> #<GeoIP:0x9c5a770 @mutex=#<Mutex:0x9c5a754>, @flags=0, @databaseType=1, @record_length=3, @file=#<File:GeoIP.dat>, @databaseSegments=[16776960]>
irb(main):002:0> g.country 'www.sohu.com'
=> ["www.sohu.com", "61.135.133.89", 48, "CN", "CHN", "China", "AS"]
irb(main):003:0> g.country '61.135.133.1'
=> ["61.135.133.1", "61.135.133.1", 48, "CN", "CHN", "China", "AS"]

若要查詢細到什麼城市,則要下載 GeoLite City Binary Format 檔案,
查到的樣子是:
irb(main):001:0> g = GeoIP.new('GeoLiteCity.dat')
=> #<GeoIP:0x9c4d148 @mutex=#<Mutex:0x9c4d0d8>, @flags=0, @databaseType=2, @record_length=3, @file=#<File:GeoLiteCity.dat>, @databaseSegments=[4140876]>
irb(main):002:0> g.country '61.135.133.1'
=> ["61.135.133.1", "61.135.133.1", "CN", "CHN", "China", "AS", "22", "Beijing", "", 39.9289, 116.3883]

就可以依陣列的最後幾個元素來判斷給不給服務。

其他程式環境使用 GeoIP 的 API 可參考:
Linux/Unix 方面:
http://www.maxmind.com/app/linux
Windows 方面:
http://www.maxmind.com/app/windows

IIS 的目錄設定:
要在 Web Server 上設定,
就算是 Apache,也需要 mod_geoip 才跑得起來,
至於 IIS,可能至少要用 asp 或 .Net 才可有此機制,
可參考此範例修改:
http://www.codeproject.com/KB/asp/geoip.aspx
或用 google 找 asp geoip 找相關的經驗分享。

不大建議的做法:
要表列一個地區的IP,不是理想的做法。
光是台灣的IP應可參考:
http://rms.twnic.net.tw/twnic/User/Member/Search/main7.jsp?Order=ORG.ID
大陸的IP列表,應可能在:
http://www.cnnic.cn/index/0D/ 的某頁裡。

希望這些資訊夠您參考。

參考資料:文中網址

2010-02-03 09:27:06補充
若要用 GeoIP 的資料,把某一區的IP倒出來的話,

可參考:

http://www.maxmind.com/app/geolitecity

裡面的 CSV Format 這一段落,

下載 csv 檔:

http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity_20100101.zip

再參考:

Instructions on how to use our CSV databases with a SQL database

http://www.maxmind.com/app/csv

怎麼把 CSV 轉到 SQL 的說明,

就可以抓到某地區的完整IP範圍了。

[-隱藏]

回應

1

michelle 說:

我們那個網站的 server 作業系統是用 Win2003.
twtw 大哥您的意思是我就算設在 IIS 目錄裡. 有可能會爆掉是嗎 ?
=>.<=

2010-02-04 21:17:03

2

twtw 說:

如果設在IIS目錄裡,假設只允許「台灣的IP」可存取的話,您就要把:
http://rms.twnic.net.tw/twnic/User/Member/Search/main7.jsp?Order=ORG.ID
裡面的「核發IP範圍」加到IIS設定中的允許清單中;
IIS不會爆掉,用人工去手動一筆筆判斷、整理再加進去的過程中會 瘋掉。
且該台灣IP列表是會變動的,要怎麼判斷以前IIS上的設定跟新的列表上的差別?

如果是只允許「公司範圍」的IP,用IIS上的現有設定是沒問題的;
但若以世界上的某地區做可不可存取的判斷,
手動去設定列表,在更新及管理上,相當不便;
若用 GeoIP 做的話,最多只要下載更新那資料庫檔就解決了。

2010-02-05 09:52:02

3

michelle 說:

謝謝 twtw 大哥. 大概有點概念了.
那假設我要擋上海南京跟無錫的所有 IP 網段好了.
不讓這一些地方的會員或客戶或惡意訪客(駭客或來亂的)上門.
要怎查 ? 還是幫我查寄給我 ~"~ michelle@tacol.com
感恩喔.

2010-02-06 18:32:07

4

twtw 說:

擋上海南京跟無錫的所有 IP 網段

其實這樣擋的意義不大,被擋的人隨便找個proxy就還是能連進來。
若要這三地區的IP網段,就要從
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity_20100101.zip
內容中抓取。
我分別以 Shanghai,Nanjing,Wuxi 來抓取,
所整理出的結果放在:
http://alpha.tagbible.net/upfile/dl?filetoken=1267421ba15e4b7fd759108416fbe91bbc97b957
解開檔案後裡有:
  1593 ip.nanjing.txt
  4770 ip.shanghai.txt
   966 ip.wuxi.txt
  7329 total

每一行是:開始IP-結束IP 的樣式,
共有 七千 多行,就是包括這三地區的網段。
怎麼抓出的細節?
主要是該csv檔是32bit的數字,來轉成習慣的IP樣式,
是參考這一文做出來的:
http://en.kioskea.net/faq/945-converting-a-32-bit-integer-into-ip

2010-02-07 00:59:18

5

twtw 說:

將如何從 GeoIP 抓出所要的地區IP,
詳細的步驟寫在
利用 GeoIP 列出某地區的所有IP網段
一文裡。

2010-02-07 02:08:23

如何查詢地區性的所有IP網段 ?

目前沒有資料

回應

請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數



 

檢舉違規

違規事項:

*補充檢舉理由(可省略),字數不可超過100字

推薦

推薦理由:


*給回答者的鼓勵(可不填),字數不可超過100字

哈哈
毆飛
開心
抗議
落寞
睡覺
噴鼻血
No
失神
爆氣
疑惑
Orz
不耐煩
喜歡
臉紅
噎到
放手
打嗑睡
掰掰
放馬過來
敲碗
簽名
筆記
拍手
沙發
XD
無言
偷笑
翻桌
謝謝
灑花
抱抱
逃跑
炸死你
愛你
生日快樂
rock
嘆氣
下雨
衝刺
搖頭
拍照
打球
健身
駭客
射門
泡湯
踹共
唱歌
做菜

上傳圖片
▼ ADVERTISEMENT ▼

邦友收藏動態

最新收藏最多人推最多人收

新增收藏

收藏到iT邦 書籤小工具

「收藏到iT邦」讓你更方便收藏站外文章。可用下面其中一種方法安裝:

  • 拖拉上面的「收藏到iT邦」連結到瀏覽器的書籤列
  • 在連結上方按右鍵,選擇「加到我的最愛」

之後看到喜歡的站外文章,只要點一下「收藏到iT邦」,就會收藏起來囉

安裝「收藏快捷鍵」

安裝「收藏快捷鍵」,可以讓邦友直接透過Google工具列上的按扭,快速收藏站內、站外的網頁。

訂閱每日摘要

iT邦幫忙即日起提供「每日摘要」給尚未註冊的邦友,只要輸入您的E-mail,每日就可以收到最新的發問與分享