JS和C#.NET獲取客戶端IP


  我們經常在項目中會遇到這種需要獲取客戶端真實IP的需求,其實在網上也能隨便就能查到各種獲取的方法,我也是在網上查了加上了自己的實踐,說一下自己在實踐后的感受,基本上網上大部分都是用JS的方法來獲取客戶端的IP,今天我也分享一種C# .NET可以獲取到客戶端IP的方法。

一、JS獲取客戶端IP

基本上在網上可以查到的以下幾種方法:

(1)使用搜狐接口(適用所有平台及瀏覽器)

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>  
<script type="text/javascript">  
document.write(returnCitySN["cip"]+','+returnCitySN["cname"])  
</script>

這種方式我有嘗試過,第一天還好好的,第二天就不行了,后面就變成:在我本地電腦上直接運行是沒有問題的,但是發布到服務器后就沒有效果了。

(2)使用新浪接口(適用所有平台及瀏覽器)

<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script>       <!--獲取接口數據,注意charset -->
<script type="text/javascript"> 
document.writeln("IP地址:"+ILData[0]+"<br />");           //輸出接口數據中的IP地址 
document.writeln("地址類型:"+ILData[1]+"<br />");         //輸出接口數據中的IP地址的類型 
document.writeln("地址類型:"+ILData[2]+"<br />");         //輸出接口數據中的IP地址的省市
document.writeln("地址類型:"+ILData[3]+"<br />");         //輸出接口數據中的IP地址的
document.writeln("地址類型:"+ILData[4]+"<br />");         //輸出接口數據中的IP地址的運營商
</script>

這個地址說實話我都打不開,可能是慢。放棄了。

 

以上兩種都是使用的第三方接口的方式,好像還有一些個人的接口,從我的實踐來看,第三方接口不穩定,而且修改了接口可能會導致你的項目出錯,其實是不可取的。

還有針對IE瀏覽器,使用AcitiveX插件方法,這種方法必需要讓用戶設置自己的IE瀏覽器允許運行AcitiveX插件才可行,而且Firefox和Chrome等瀏覽器不支持,顯然也是不可取的。

綜上,其實我是不推薦采用JS的方式來獲取客戶端IP的,下面介紹一種C# .NET的方式,也是我自己在使用的。

二、C# .NET方式獲取客戶端IP

直接貼代碼

string IP;
if (Request.ServerVariables["HTTP_VIA"] != null) // 服務器, using proxy
{
         //得到真實的客戶端地址
         IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  // Return real client IP.
}
else //如果沒有使用代理服務器或者得不到客戶端的ip  not using proxy or can't get the Client IP
{
          //得到服務端的地址    
          IP = Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM