Есть ли способ получить IP-адрес WAN с телефона по номеру телефона? - PullRequest
1 голос
/ 10 июня 2011

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

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

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

Ответы [ 4 ]

2 голосов
/ 10 июня 2011

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

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

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

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

1 голос
/ 10 июня 2011

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

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

1 голос
/ 10 июня 2011

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

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

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

0 голосов
/ 10 июня 2011

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

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

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

...