2011-06-10 1 views
1

Я хотел бы подключить два телефона для подключения к P2P и, естественно, для этого мне нужны телефоны, чтобы иметь возможность передавать свои IP-адреса друг другу. Я играл с большим количеством идей о том, как это сделать, и одна вещь, которую я понял, это то, что номер телефона является уникальным идентификатором для телефона, и поэтому мне было интересно, можно ли его использовать для получения IP-адресов.Есть ли способ получить IP-адрес WAN с телефона по его номеру телефона?

Я думаю, что я мог бы передавать определенные сообщения по СМС, которые будут зашифрованы, выглядят ужасно ужасными, а затем удаляться, но это будет немного взломать и ужасно грязный способ сделать что-то. Я по-прежнему в основном планирую эту область своего проекта и буду открыт для предложений.

Любая помощь будет оценена, спасибо заранее! : 0)

ответ

2

Вы можете использовать динамическую службу DNS, используя номер телефона в качестве имени хоста. Другими словами, вы просто выполните поиск DNS, например. 4255551212.dyndns.com, и вы получите последний известный IP-адрес данного номера телефона.

Динамическая служба DNS была изобретена для того, чтобы люди с набором номера (или с часто изменяющимися IP-адресами) запускали серверы на своих компьютерах с именами хостов, которые не менялись. Как он работает, на компьютере есть клиент, который периодически сообщает свой IP-адрес серверу, который помещает его в файл зоны на DNS-сервере под указанным именем хоста. Запись DNS имеет короткий промежуток времени (например, минута), так что устаревшая информация адреса не кэшируется.

Существует динамический DNS-клиент для Android, ищите DynDNS на рынке и попробуйте его.

Вы можете запустить свой собственный динамический DNS-сервер или использовать существующий (их много, некоторые бесплатные). Если вы сделаете это, я бы предложил запустить ваш собственный; то вы можете включить некоторую аутентификацию, чтобы предотвратить проблему конфиденциальности, которую я упоминаю в комментарии.

+0

* вздох * Простите мое невежество , но я немного не знаком с сетью. Не могли бы вы объяснить мне, что это значит? – Matt

+0

Вернее, как это работает ... Я имею в виду ... это интуитивно названо – Matt

+0

Хорошее решение, это сработает. – Fredrik

1

Проблема, которую вы обнаружите, заключается в том, что подключение 3G/cell не дает IP-адреса. Кроме того, если ваш телефон находится за маршрутизатором, вам нужно будет перенаправить порт на маршрутизатор, чтобы получить соединение P2P (без участия центрального сервера).

Это, если вы хотите внешний IP-адрес, кажется, что поражение http://www.whatsmyip.org/ - лучший способ пойти.

Примечание: Я не знаю многого о динамической опции DNS, предложенной kindall.

+0

Спасибо, как я уже сказал, любая помощь приветствуется. Я не знал, что 3G не дает IP-адресов ... yikes ... спасибо. – Matt

+1

Это имеет смысл, я думаю, интернет-трафик 3G должен пройти через шлюз оператора. У вас будет видимый IP-адрес, но он будет прокси-сервером, используемым множеством людей, и не разрешает входящий трафик. Что касается маршрутизатора WiFi, вы можете получить входящее соединение с помощью STUN, UP & P и т. Д., Но это добавляет много сложности. – kindall

1

Я уверен, что вы не можете напрямую это сделать. Я думаю, вам нужно, чтобы оба телефона передавали phonenumber и IP на ваш собственный сервер и связывали все вместе. Проблемы с конфиденциальностью будут подбирать любое решение, которое вы выбираете, хотя при использовании phonenumber.

Также я не знаю, действительно ли вы можете подключиться с телефона A до B, даже если у вас есть IP-номер? Но я еще не App Dev, так что вы, вероятно, знаете лучше, если вы можете настроить конечную точку/открытую сокетную вещь на телефоне B.

+0

Спасибо за понимание. Я слышал, что протокол может быть заблокирован, поэтому проблемы с подключением не удивляют, но я знаю, что некоторые вещи используют P2P в качестве опции, поэтому я достаточно уверен, что могу найти способ обойти это. – Matt

0

вы можете использовать сайт, такой как www.whatsmyip.org, чтобы получить вас IP-адрес

вполне возможно, что ваш телефон разделяет его IP-адрес с другими клиентами

вы можете также использовать VPN или в зависимости от вашего приложения сервера-посредника с помощью супа или XMPP