Как разрешить сайту получать IP-адрес компьютера, который постоянно переходит на его URL - PullRequest
0 голосов
/ 21 сентября 2018

Не смущайтесь из-за названия, которое, как я знаю, довольно часто встречается при переполнении стека, но моя проблема в другом.

Требование: я внедряю сетку Selenium в свою среду, где мне нужно предоставить пользователямвозможность выбора машин / узлов, где они хотят запустить свои тесты.Я разработал основанный на пользовательском интерфейсе фреймворк , размещенный на компьютере 1 , предоставляющий выпадающий список машин / узлов для выбора значения.В зависимости от выбранного значения код создаст nodeURL на основе IP-адреса компьютера и успешно выполнит тесты на этом компьютере.Ниже приведен код

if(hostMachine.equals("Machine1"))
    nodeURL = new URL("http://IP:PortNo/wd/hub");

 else if (hostMachine.equalsIgnoreCase("Machine2"))
    nodeURL = new URL("http://IP:PortNo/wd/hub");

Точно так же мне нужно указать также и пользовательскую машину, то есть, какую бы машину ни имел пользователь, он / она должен также иметь возможность запускать свои тесты на этой машине.Поэтому я добавил опцию «Моя машина» в раскрывающемся списке и написал код, указанный ниже, для динамического извлечения IP-адреса компьютера пользователя.

else if(hostMachine.equals("My Machine") || hostMachine.equals("Select"))
{    
     try   
     {
     InetAddress ipAddress = InetAddress.getLocalHost();
     nodeURL = new URL("http://"+ipAddress.getHostAddress+":5555/wd/hub");
}

catch(Exception e)
{
            // TODO Auto-generated catch block
            e.printStackTrace();
}

Проблема: Теперь возникает проблема, с которой я сталкиваюсьпользователь выбирает «Моя машина», код выбирает IP-адрес машины 1 (где в настоящее время размещена инфраструктура) и запускает тесты там, а не на машине пользователя.Я развернул войну фреймворка на Машине 1 с помощью tomcat и получил доступ к URL-адресу со своей машины, чтобы проверить, но не уверен, почему он каждый раз выбирает IP-адрес машины 1. ipAddress.getHostAddress () выбирает только IP-адрес хост-сервера?В любом случае можно ли получить IP-адрес компьютера пользователя, с которого мы пытаемся получить доступ к URL-адресу, чтобы тот, кто когда-либо выбрал опцию «Мой компьютер», код должен был получить IP-адрес своего компьютера и запустить там тесты.Буду признателен за вашу помощь.

Спасибо, Хасан

1 Ответ

0 голосов
/ 21 сентября 2018

Чтобы получить Ip хост-машины, вы можете использовать расширение WebRTC HTML5.Это позволяет javascript запрашивать IP-адрес локального клиента - при условии, что ваша основанная на пользовательском интерфейсе структура использует Javascript

...