看板 Linux 關於我們 聯絡資訊
問題有好幾個, 其實網友們都回答了, 但似乎你在推文的過程中又混亂了 我重新整理一次, 分成不同 case 討論 1. 如何知道本機對外 ip ans: a)擁有 public ip, 使用 ifconfig 取得 b)NAT 內 → kenduest: urllib2.urlopen('http://ipecho.net/plain').read() NAT 內無法知道自己的外部情況, 就像如果一個人被關在箱子裡面, 除非 有人告訴你, 否則你不會知道箱子是甚麼顏色 除非你有 NAT 的權限, 那就有機會直接詢問 2. 如何知道同網域沒權限B電腦對外 ip ans: a)擁有 public ip, 你擁有 B 電腦甚麼資訊? domain name: 反查 MAC: 反查 WINS: 反查 都不知道: 那你要怎麼知道哪台是你的 B 電腦? 沒權限想必也沒辦法安裝 軟體對吧 b)NAT 內: 正常會跟 A 電腦同樣的對外 ip ※ 引述《Dong0129 (阿東)》之銘言: : 標題: [問題] 對外IP : 時間: Thu Apr 23 21:59:03 2015 : : 各位版友好, : : 請問有沒有方法能夠拿到某台設備(自己的電腦或其他設備)的對外IP呢? : : 目前找到的方法都是利用軟體或是網頁, : : 但是在不能使用這兩種方法的情況下有沒有什麼指令能夠知道對外IP呢? : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.113.177 : ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1429797547.A.772.html : → kenduest: 不連出去怎麼會知道對外 ip 是多少呢 ? 04/23 22:14 : → kenduest: 尤其是躲在 nat 環境下的網路裝置的環境 04/23 22:16 : : 您好,這也是我感到納悶的地方, : : 因為希望能夠在一隻python腳本正在跑的過程中取得對外IP, : : 所以應該要避免利用軟體或是網頁的方式獲得對外IP, : : 最簡單的方法是利用系統指令,但好像又沒有系統指令能夠達成, : : 所以才想發問請教是否有方法能夠達成這個目的... : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 22:19:26 : → kdjf: http://ipecho.net/plain 04/23 22:27 : → kdjf: more: http://ipecho.net/developers.html, don't abuse it 04/23 22:30 : → kenduest: python 用 urllib* 這類連到外面存取 url 不也就是 04/23 22:31 : 您好,因為對於python而言還是個新手, : : 所以有些語法並不熟悉, : : 一邊在找資料也一邊發問, : : 希望能夠學到更多, : : 很感謝各位願意給我指點。 : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 22:37:10 : → kenduest: python 2 code: 04/23 22:38 : → kenduest: import urllib2 04/23 22:38 : → kenduest: urllib2.urlopen('http://ipecho.net/plain').read() 04/23 22:38 : → kenduest: return 那就是 ip 位址了.... 04/23 22:38 : : 謝謝您, : : 但沒有方法能夠獲得其他設備的對外IP對嗎? : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 22:41:01 : → kenduest: 剛剛不是說不連外怎麼知道對外 ip 了嗎? 04/23 22:41 : → kenduest: 又繼續回到鬼打牆的討論? 04/23 22:46 : : 抱歉沒有清楚表達我的疑問, : : 我的意思是,有辦法在沒有B電腦權限的情況下, : : 從A電腦得知B電腦的對外IP嗎(A&B處在同個網域)? : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 22:52:50 : → kenduest: 上面提供方式最簡單作法你不用,令人費解 04/23 23:12 : : 您好,很感謝您給的指點, : : 只是今天想要做到自動化取得A電腦到B電腦裡的router路徑, : : 並對每個node做分析,因此不太可能能夠得到每台電腦的權限, : : 故會有上述問題, : : 您提供的指導給我很棒的方向,謝謝您! : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 23:17:54 : → zhucc: 同個網域下對外ip不同嗎? 04/23 23:16 : → cybelia: 同樓上疑問 @_@ 04/23 23:17 : → cybelia: 這樣的用途不需要先知道B電腦的ip才能找到他嗎@@? 04/23 23:19 : 推 kenduest: 你都沒有 a 存取權限了又如何知道 a 出去會走什麼路線 04/23 23:19 : → kenduest: 你又不是對方哪知道對方 routing table 的資訊 ? 04/23 23:20 : : A--B--C : | : | : D : : 假如拓墣如上, : : 目標是A電腦能不能夠拿到B電腦的對外對內IP資訊, : : 因為沒有B的權限,所以我也很納悶要怎麼拿... : : → cybelia: 另外聽起來需要的比較像是網域內的ip.. 04/23 23:20 : : 因為我必須知道路徑內每個node的對外IP,才有辦法得知該node所屬的ISP、國域等資訊 : : 所以應該是對外IP吧,只是目前很納悶要怎麼拿到沒權限電腦的對外IP... : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 23:27:22 : → kenduest: 還有問題描述常常用自己方式陳述,結果後來問的東西 04/23 23:20 : → kenduest: 與原本當初問的內容差異實在頗大 04/23 23:21 : : 抱歉,我的確描述的不夠清楚... : : 會試著直接描述問題的.. : ※ 編輯: Dong0129 (220.137.113.177), 04/23/2015 23:30:55 : → kdjf: a->b的route不就是traceroute/tracert搞定? 你該缺什麼? 04/24 00:48 : → kdjf: 還 04/24 00:58 : 推 asdfghjklasd: 在你同一個位置的Node 只會有一個網路.除非你能把 04/24 08:50 : → asdfghjklasd: 全世界網路放在你家,不然你怎可能知道其它家 04/24 08:51 : → asdfghjklasd: 就算CIA/FBI 都沒辦法 04/24 08:51 : → asdfghjklasd: 若是A/B/C 各是自己PPPOE出去,那你也很難捉 04/24 08:52 : → asdfghjklasd: 就算A/B/C同時你可以Sniffer也不一定可以看的到 04/24 08:53 : → kouryuu: 預先打開其他電腦的snmp,然後放bat or shell進去跑,透過 04/24 12:40 : → kouryuu: snmp撈, 如果連這些動作都不能做,那可以知道就真的很恐怖 04/24 12:40 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 198.211.33.21 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1429855753.A.3A2.html