Можно ли сделать трассировку Javascript / Jquery для приложения cordova? - PullRequest
0 голосов
/ 14 мая 2019

Я хотел бы сделать приложение Cordova в JavaScript с traceroute для другого IP / домена.Я могу определить свой IP-адрес на устройстве с помощью сценария на стороне сервера в PHP, который возвращает мне IP-адрес в сценарий приложения javascript.Но возможно ли отследить мой сервер или другой ip из javascript в приложении устройства?

Я нашел этот плагин traceroute cordova , но нет информации, как его использовать.

https://github.com/navidmalekan/cordova-plugin-traceroute

Кто-нибудь с такой же проблемой?Большое спасибо за помощь

1 Ответ

0 голосов
/ 14 мая 2019

К сожалению, правильная команда traceroute требует использования ICMP . JavaScript даже не имеет возможности создавать необработанные сокеты TCP или UDP (вместо этого он создает соединения WebSockets и WebRTC, которые абстрагируют их с некоторой дополнительной безопасностью при создании сокета), и он, конечно, не имеет возможности отправлять сообщения ICMP.

Это не означает, что все надежда потеряна, но вы не получите совершенно точный след с 100% точностью. Если ваша цель состоит в том, чтобы найти маршрут, пройденный от клиента JavaScript до вашего собственного сервера, вы можете вместо этого заставить свой сервер инициировать трассировку для клиента и предположить, что они используют тот же путь в обратном направлении, чтобы связаться с вами. Это не всегда так, но обычно довольно близко.

Если ваша цель состоит в том, чтобы найти маршрут между двумя клиентами JavaScript, то для этого требуется еще больше догадок. Ваш сервер может инициировать трассировку для каждого клиента, а затем выяснить, каков общий путь. Например:

Сервер -> Клиент A

192.168.1.1
100.100.100.100
200.200.200.200
123.123.123.123
75.75.75.75

Сервер -> Клиент B

192.168.1.1
100.100.100.100
200.200.200.200
180.180.180.180
150.150.150.150

В этом случае мы можем предположить, что путь 192.168.1.1 -> 100.100.100.100 -> 200.200.200.200 - это путь, по которому ваш сервер выходит для выхода из Автономной системы , а 123.123.123.123 - точка входа в автономную систему ClientA и 180.180.180.180 является точкой входа в автономную систему ClientB. Поэтому трассировка от ClientA к ClientB может выглядеть следующим образом:

75.75.75.75
123.123.123.123
180.180.180.180
150.150.150.150

Конечно, это не обязательно будет точным. Во внутренней сети ClientA может существовать альтернативный путь, который приближает их к ClientB, поэтому они могут использовать другую точку входа. Тем не менее, это лучше, чем ничего.

Относительно Кордовы

Cordova - это платформа для создания мобильных приложений (приложений Android) с использованием HTML, JavaScript и CSS. В отличие от работы в браузере, в котором вы ограничены API-интерфейсом DOM и несколькими другими API-интерфейсами HTML5, Cordova предоставляет вам доступ ко всей системе Android через пользовательский API-интерфейс. Таким образом, вы можете получить доступ к SD-карте, камере, микрофону и т. Д.

Cordova может выполнять трассировку не потому, что это JavaScript, а потому, что это Android. JavaScript фактически делает вызов (через API) внешней программе, написанной на Java или C / C ++, что делает traceroute

Если вы создаете мобильное приложение, а не веб-сайт, то это может быть вариант для вас

...