2013-06-13 3 views
4

Я пытаюсь найти пример кода, чтобы запросить сервер STUN для получения моего публичного IP и порта, используя JavaScript. Возможно, с помощью сервера наКак запросить сервер STUN с JavaScript для получения общедоступного IP и порта?

http://www.stunserver.org

Хотя описание STUN объясняется здесь http://www.ietf.org/rfc/rfc3489.txt (это длинный документ, очевидно, я не ожидаю, что вы читали это), я не смог найти ни одного примера кода на всех, что облегчило бы мою жизнь. Что-то вроде

function getMyIPAndPort() { 
//query stun server for it 
} 

Спасибо

+0

12 просмотров и ответов нет ... Чак Норрис, пожалуйста, помогите !!! :( –

+0

Вы говорите о приложении nodejs на стороне сервера или javascript, запущенном в веб-браузере? – lontivero

+0

Ну давай. Должен быть ответ. – GunJack

ответ

1

Очень поздний ответ. Взгляните на этот мини-проект: https://diafygi.github.io/webrtc-ips/

Это дает вам IP-адрес, но, похоже, не дает порт. Однако, если вы посмотрите на эти строки: //match just the IP address var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/ var ip_addr = ip_regex.exec(candidate)[1];

Кажется, что они удаляют порт. Я не уверен, но вы можете поиграть с ним, чтобы узнать.

1

Я также проверяю проект (https://diafygi.github.io/webrtc-ips), даже если это фантастический сценарий, мне не понравилось слишком много. Я имею в виду, причина в том, что он предполагает, что IP-адреса являются общедоступными и частными. Если IP не 10/8, 172.16/12 или 192.168/16, это общедоступный IPv4. Это не всегда верно. Вы можете (к сожалению) иметь IPv4-адрес другого диапазона в вашей локальной сети и NAT. Эта идея заключается в том, чтобы получить возврат IP-адреса на сервере STUN, а не предполагать его.

С уважением,