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

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

Требование: я внедряю сетку 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 ответ

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

Другие вопросы по тегам