Как разрешить сайту получать 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