2011-06-10 891 views
1

我想將兩部手機連接在一起,以實現某種P2P風格的連接,並且自然而然地這樣做,我需要手機能夠互相交流其IP地址。我一直在玩弄很多關於如何做到這一點的想法,我意識到一件事是電話號碼是手機的唯一標識符,因此我想知道它是否可以用來獲取IP地址。有沒有辦法根據手機號碼從手機獲取WAN IP地址?

我想我可以通過短信傳送某些信息,這些信息會被加密,看起來非常糟糕,然後被刪除,但這會有點破壞性,而且做起來非常麻煩。我仍然主要計劃我的項目的這個領域,並會接受建議。

任何幫助將不勝感激,謝謝你提前! :0)

回答

2

您可以使用動態DNS服務,使用電話號碼作爲主機名。換句話說,您只需執行DNS查找4255551212.dyndns.com,你會得到給定電話號碼的最後一個已知IP地址。

動態DNS服務是爲了讓撥號(或經常更改IP地址)的用戶在其計算機上運行服務器,並且主機名稱沒有更改而發明的。它的工作方式是,計算機上有一個客戶端,它可以定期將其IP地址報告給服務器,服務器將其置於指定主機名下的DNS服務器上的區域文件中。 DNS記錄的生存時間很短(例如一分鐘),以避免過時的地址信息被緩存。

有一個Android的動態DNS客戶端,在市場上尋找DynDNS並試用它。

您可以運行自己的動態DNS服務器或使用現有的一個(有很多,一些免費)。如果你這樣做,我會建議你自己跑;那麼你可以包含某種認證來防止我在評論中提到的隱私問題。

+0

*嘆*請原諒我的無知,這取決於你的應用程序的中介服務器,但我對網絡有點新鮮。你能向我解釋這是什麼意思嗎? – Matt 2011-06-10 19:41:58

+0

或更確切地說,這是如何工作的......我的意思是......它直觀地命名爲 – Matt 2011-06-10 19:43:05

+0

好的解決方案,這將起作用。 – Fredrik 2011-06-10 19:48:05

1

您會發現一個問題,3G/cell連接不提供IP地址。另外,如果您的手機位於路由器後面,則必須在路由器上進行端口轉發才能獲得P2P連接(不涉及中央服務器)。

也就是說,如果你想要外部IP地址,看起來http://www.whatsmyip.org/是最好的選擇。

注意:我不太瞭解kindall建議的動態DNS選項。

+0

謝謝,就像我說的,任何幫助表示讚賞。我不知道3G沒有提供IP地址......但是,謝謝。 – Matt 2011-06-10 19:48:21

+1

這很有道理,我想3G上網流量必須通過運營商的網關。您將擁有可見的IP地址,但它將成爲許多人使用的代理,並且不允許入站流量。至於WiFi路由器,您可以使用STUN,UP&P等獲得入站連接,但這會增加很多複雜性。 – kindall 2011-06-10 19:56:39

1

我很確定你不能直接這樣做。我認爲你需要兩部手機才能將電話號碼和IP轉移到你自己的服務器上,並通過那裏把所有的東西綁在一起。當涉及到電話號碼時,隱私問題將隨着您選擇的任何解決方案逐漸增加。

另外我不知道你是否真的可以直接從手機A連接到B,即使你有IP號碼?但我還不是App Dev,所以如果你可以在手機B上設置一個端點/開放套接字,你可能會更好。

+0

感謝您的洞察力。我聽說協議可能會被阻止,所以連接問題並不令人意外,但我知道有些東西使用P2P作爲選項,所以我相當有信心可以找到解決方法。 – Matt 2011-06-10 19:50:46

0

你可以使用www.whatsmyip.org這樣的網站來幫助你IP地址

有可能是您的手機共享其與其他客戶

IP地址

你也可以使用VPN或用湯或XMPP

相關問題