Friday, September 26, 2008

從IP可以知道在那裡

news from PTT EZsoft

為什麼所有人一看原po的文章就知道原PO是從哪個學校上網的?
因為原po的IP是140.112.起頭的
而所有140開頭的(class A網段)代表台灣學術網路TANET (註:此句有誤,請見下方)
所有的140.112開頭的(class B網段)都是台灣大學的IP

有幾個"小程式"(其實都已經是各大OS的內建指令了)可以幫助你判斷一個IP的位置
當然,要先扣掉遠端連線 / proxy / VPN / tunnel等各種花俏的作法XD

‧nslookup

在這裡提一個觀念,叫做網域名稱Domain Name(DN),一般來說上網的網址就是它開頭的
舉個例子,ptt.cc就是一個DN,www.google.com也是一個DN
電腦間要連線是靠IP連,所以DN要轉成IP,反過來IP也可以轉成DN(細節就不提了)
把DN轉IP一般稱正解,IP轉DN一般稱反解,透過DN反解也可以推測該IP的資訊
而DN和IP可能是多對多的,一個IP可能有多個DN一個DN也可能有多個IP

nslookup就是用來查詢在這兩者之間轉換的指令
你可以在命令列模式直接輸入nslookup <你想查的IP或是DN>,就可以看到結果

舉個例子,貴校的計算機中心網頁主機www.cc.ntu.edu.tw
用nslookup一查,意可以發現該IP原來的DN是lab408-2.cc.ntu.edu.tw
從這個DN猜測這台主機在台大計中的lab 408裡面,應該蠻合理的
如果學校DNS反解做的很勤的話,從宿舍的哪一間上網搞不好都可以知道

可是,如果對方是透過Hinet等ISP上網,IP是臨時配給的,那查DN查不出什麼結果的
你只會拿到220-136-0-93.dynamic.hinet.net之類的東西,只能知道他的ISP是哪家

‧WHOIS

簡單的說WHOIS就是一種可以讓你知道某個DN或是IP由誰擁有的服務
Windows應該沒有內建WHOIS的指令,多數UNIX like則是有
google關鍵字whois就可以查到一票WHOIS的服務
這種網頁通常直接輸入IP或是DN就可以查

但是,WHOIS顯示出來的資訊不見得是準確的,不管用IP或是DN去查
例如,140.112.8.102這個IP是貴校的計算機中心網頁主機 (www.cc.ntu.edu.tw)
把這個IP丟進WHOIS去,只會知道這個IP屬於台灣大學,以及貴校網路負責人的資訊

以220.136.0.93 為例,更只能查出這是屬於Hinet的IP,什麼都查不到

如果你是丟DN進去,它會顯示這個DN註冊時所填的資訊
如果DN是屬於政府機關 / 公司行號 / 學術單位,那應該有參考的價值
如果DN是使用者自己買的,那麼WHOIS的資訊使用者可以隨便填,所以可信度很低

‧TraceRoute
TraceRoute簡單的說,就是試著追蹤從你的電腦到目標電腦所要經過的路徑
一些看起來很帥很有噱頭的IP追蹤程式骨子裡就是這個,各大OS都內建了...
Windown下的指令叫tracert,UNIX like是traceroute

透過traceroute,可以知道你的電腦到目標電腦的可能路徑之一
但是每次路徑不見得會一樣
透過分析這條路徑上的機器的IP / DN,可以做出這個IP位置的猜測
但是這方法也很不精準,因為取得的資訊還是一路上的IP / DN
例如,如果你發現從你的機器連到該IP只要兩個HOP,那就十分可能兩台機器很靠近
但是一個經過10HOP的位址會不會比12HOP的更靠近你的機器,就很難說了

網路異常或是連不上某網站也可以用這方法來判斷到底是死在哪一個點

可是,Windows的tracert有一點怪怪的,導致在windows下tracert常會失敗
(原因是出在出去的ICMP封包後面有pending一些0,VISTA似乎也是)
因此建議使用其他traceroute的軟體
我個人手上有一個叫VisualTraceRoute的軟體,小巧免費,不過關網倒掉了囧
不知道有沒有人可以推薦類似的免費軟體?


另外,如果說兩個IP很接近,比如說在同一個class C,也就是前三個數字都一樣
那麼這兩台電腦可能"相對來說"比較接近,但是你不會知道實際上有多接近
比如說一所大學的一個系可能就有個以上的class C網段,而高中可能整個學校才一個
更不用提ISP了,同樣的網段,物理上的涵蓋範圍可以差很多

除非你是網管,知道目前這個IP分配給哪個網路孔使用
或是你是ISP,知道這個IP分配給哪個用戶使用

否則對一般使用者,透過IP判斷一台電腦位置都是不精確的

台灣的網路歸twaren所管轄http://www.twaren.net/
依照twaren給的表http://0rz.tw/8d0cW

No comments: