2010-08-22 92 views
2

嗨,我發現瞭如何通過回答讓客戶端IP這裏: Can I perform a DNS lookup (hostname to IP address) using client-side Javascript?的JavaScript獲得客戶端IP

但我不知道如何使用它。

這是我有:

var user; 
if ($('#user-id').length) { 
    user = $('#user-id').text(); 
} else { 
    http://jsonip.appspot.com/?callback=getip 
    function getip(json){ 
     user = json.ip; 
    } 
} 

我不明白如何包含URL以及如何使用getip功能。

我需要將用戶設置爲其他地址中的IP地址。

謝謝!

+0

作爲穆罕默德指出,這需要從服務器上的幫助。如果你告訴我們你使用了什麼後端框架/語言,你會得到更具體的答案。 – Chubas 2010-08-22 05:01:10

回答

4

使用jQuery,你可以做一個JSONP電話:

$.getJSON('http://jsonip.appspot.com/?callback=?', 
     function(data){ 
      alert(data.ip); 
     }); 

可能更容易理解 - 一種替代,沒有jQuery的,應該是:

<script type="text/javascript"> 
    function getip(data){ 
     alert(data.ip); 
    } 
</script> 
<script type="text/javascript" src="http://jsonip.appspot.com/?callback=getip"> 
</script> 

注意,當你包括http://jsonip.appspot.com/?callback=getip在你的HTML的腳本,你得到有效的JavaScript作爲迴應:

getip({"ip": "147.234.2.5", "address":"147.234.2.5"}); 

這行用適當的參數執行你的功能。請注意,該函數的名稱是通過查詢字符串給它的。

0

您只能通過JavaScript訪問您的域名,除非您與iframes進行溝通,否則無法與JavaScript進行跨域通信。

如果您有動態後端,如PHP,Java,Python,Ruby,CGI等,您可以輕鬆地從訪問您的頁面的用戶獲取IP地址。每種語言都有自己的機制。

+2

你絕對可以開啓跨域請求。請閱讀關於'Access-Control'響應標題的內容。 – BalusC 2010-08-22 05:06:19

+0

對不起,我忘了添加鏈接了,這裏是:['Access-Control'](http://www.w3.org/TR/cors/)。 – BalusC 2010-08-22 05:57:13

0

你的JavaScript語法中有一個隨機的,自由浮動的URL。

這是如何使jQuery的遠程JSON請求。

http://api.jquery.com/jQuery.getJSON/

我建議你得到普遍比較熟悉JavaScript。

0

你可以使用這樣的事情:

<script type="text/javascript"> 
    var userip; 
</script> 
... 
<script type="text/javascript" src="http://l2.io/ip.js?var=userip"</script> 
... 
<script type="text/javascript"> 
    document.write("Your IP is :", userip); 
</script> 

下面是該庫的URL:http://l2.io/