簡體   English   中英

如何允許站點獲取訪問其URL的機器IP

[英]How to allow site to get the machine's IP which ever is acessing its URL

不要對我知道的標題感到困惑,該標題在Stack Overflow上很常見,但我的問題有所不同。

要求:我正在框架中實現Selenium網格,在這里我需要為用戶提供選擇他們想要運行測試的機器/節點的選項。 我設計了一個基於UI的框架,該框架托管在Machine 1上,提供了從其中選擇值的機器/節點的下拉列表。 根據選擇的值,代碼將基於計算機IP創建一個nodeURL,並將在該計算機上成功運行測試。 下面是代碼

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();
}

問題:現在我面臨的問題是,每當用戶選擇“我的機器”時,代碼都將獲取機器1(當前托管框架的機器)的IP地址,並在那里而不是在用戶的機器上運行測試。 我已經使用tomcat在Machine 1中部署了框架之戰,並從我的計算機訪問URL,以測試但不確定為什么每次都會獲取Machine 1的IP地址。 ipAddress.getHostAddress()是否僅獲取主機服務器的IP地址? 無論如何,是否有要從我們嘗試訪問URL的地方獲取用戶計算機的IP地址的信息,以便無論用戶選擇“我的計算機”的選項,代碼都應獲取其計算機IP並在此處運行測試。 將感謝您的幫助。

謝謝,哈桑

要獲取主機的Ip,可以使用HTML5的WebRTC擴展。 這允許javascript查詢本地客戶端IP地址-假設基於UI的框架使用Javascript

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM