亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net 獲取IP的相關資料

2024-07-10 13:18:29
字體:
來源:轉載
供稿:網友
ASP.net 獲得客戶端的IP,最常見的是使用下述代碼:

復制代碼 代碼如下:


string user_IP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];


對于了解代理服務器情況的人,我們會知道,如果用戶使用了代理服務器,上述代碼獲得的是代理服務器的IP地址;如果用戶使用了多個代理服務器,則是到達服務器的最后一個代理服務器的IP地址。

REMOTE_ADDR 說明:

訪問客戶端的 IP 地址。
此項信息用戶不可以修改。
如果真的給改了的話,你也和服務器連接不了了,服務器就是按照這個來與客戶端建立連接并進行通訊的。實際我測試修改這個 ServerVariables , 一點效果都沒有。仍然獲得是實際的值。
另: Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"] 實際是同一個值。

如何繞過代理服務器獲得用戶真實的IP地址呢? 這時候我們一般是類似如下的代碼(這里我簡單起見,沒有作一些邊界判斷)

private static string getIp(){
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
return System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[]{','})[0];
else
return System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
這樣就足夠了么? 這樣是有問題的,HTTP_X_FORWARDED_FOR 、HTTP_VIA 是可以被冒名的。如果正好這里有SQL注入問題的話,那可非常嚴重了。

下面我們就來具體看HTTP_VIA 和HTTP_X_FORWARDED_FOR 這兩個 ServerVariables。

HTTP_VIA

如果有該條信息, 就證明您使用了代理服務器,代理服務器的地址就是后面的數值。

HTTP_X_FORWARDED_FOR

如果有該條信息, 也證明了您使用了代理服務器代理服務器的地址就是后面的數值。

需要注意的,HTTP_X_FORWARDED_FOR 的值,并不一定是只有一個IP地址,下面的信息也是可能的,每行一條記錄。下面數據取材于CSDN 實際的數據。
10.194.73.11
unknown, unknown, 211.100.22.30
203.98.182.163, 203.98.182.163, 203.129.72.215
172.16.20.110, 202.116.64.196, 203.81.21.61
10.194.75.83, 10.194.73.11, 10.194.73.11, unknown
192.168.120.57, unknown, unknown, 211.10.10.195
10.2.4.211, 219.141.250.3
3.242.165.168, 218.108.22.164
unknown, 211.100.22.30
192.168.83.56, 210.21.224.233
218.94.136.176, 203.81.21.61
unknown, 210.75.1.181
10.161.196.218, 202.104.134.23
222.216.6.148, 222.216.6.146
155.161.59.47, unknown


需要注意的是這兩個值都是可以被改掉的。

對于這三個值:REMOTE_ADDR、HTTP_VIA、HTTP_X_FORWARDED_FOR 來說,可以分以下五種情況:

一、沒有使用代理服務器的情況:

REMOTE_ADDR = 您的 IP
HTTP_VIA = 沒數值或不顯示
HTTP_X_FORWARDED_FOR = 沒數值或不顯示

二、使用透明代理服務器的情況:Transparent Proxies

REMOTE_ADDR = 最后一個代理服務器 IP
HTTP_VIA = 代理服務器 IP
HTTP_X_FORWARDED_FOR = 您的真實 IP ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

這類代理服務器還是將您的信息轉發給您的訪問對象,無法達到隱藏真實身份的目的。

三、使用普通匿名代理服務器的情況:Anonymous Proxies

REMOTE_ADDR = 最后一個代理服務器 IP
HTTP_VIA = 代理服務器 IP
HTTP_X_FORWARDED_FOR = 代理服務器 IP ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

隱藏了您的真實IP,但是向訪問對象透露了您是使用代理服務器訪問他們的。

四、使用欺騙性代理服務器的情況:Distorting Proxies

REMOTE_ADDR = 代理服務器 IP
HTTP_VIA = 代理服務器 IP
HTTP_X_FORWARDED_FOR = 隨機的 IP ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

告訴了訪問對象您使用了代理服務器,但編造了一個虛假的隨機IP代替您的真實IP欺騙它。

五、使用高匿名代理服務器的情況:High Anonymity Proxies (Elite proxies)

REMOTE_ADDR = 代理服務器 IP
HTTP_VIA = 沒數值或不顯示
HTTP_X_FORWARDED_FOR = 沒數值或不顯示 ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

完全用代理服務器的信息替代了您的所有信息,就象您就是完全使用那臺代理服務器直接訪問對象。

服務器端的 UserIP.ASPX 頁面的代碼:

復制代碼 代碼如下:


protected void Page_Load(object sender, EventArgs e){
StringBuilder info = new StringBuilder(); // 我們關注的三個 ServerVariables
info.AppendFormat("HTTP_VIA = {0} <br />/r/n",
Request.ServerVariables["HTTP_VIA"]);
info.AppendFormat("HTTP_X_FORWARDED_FOR = {0} <br />/r/n",
Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
info.AppendFormat("REMOTE_ADDR = {0} <br />/r/n",
Request.ServerVariables["REMOTE_ADDR"]);
info.AppendLine("*********** /r/n<br />");
// 其他有參考價值的 ServerVariables
foreach (string key in Request.ServerVariables.AllKeys){
info.AppendFormat("{0} = {1} <br />/r/n", key, Request.ServerVariables[key]);
}
Response.Clear();
Response.Write(info.ToString());
Response.End();
}
客戶端發送請求的代碼:
[code]
static void Main(string[] args){
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:7867/MyTestWebSite/UserIP.aspx");
request.Headers.Add("REMOTE_ADDR", "192.168.5.88");
request.Headers.Add("VIA", "ghj1976");
request.Headers.Add("X_FORWARDED_FOR", "0.0.0.0");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream());
string info = stream.ReadToEnd();
stream.Close();
response.Close();
request = null;
Console.Write(info);
Console.ReadLine();
}


測試的結果中的重要信息:測試的結果數據比較多,我這里只羅列了幾個重要的。

HTTP_VIA = ghj1976 <br />
HTTP_X_FORWARDED_FOR = 0.0.0.0 <br />
REMOTE_ADDR = 127.0.0.1 <br />
***********
REMOTE_ADDR = 127.0.0.1 <br />
HTTP_VIA = ghj1976 <br />
HTTP_REMOTE_ADDR = 192.168.5.88 <br />
HTTP_X_FORWARDED_FOR = 0.0.0.0 <br />

上面測試代碼需要注意的是:

我們在客戶端代碼中設置了三個HTTP頭信息,分別是:

REMOTE_ADDR、VIA、X_FORWARDED_FOR
實際在服務器段,這三個值應該通過下面三個屬性來讀取

HTTP_REMOTE_ADDR、HTTP_VIA 、HTTP_X_FORWARDED_FOR 注意他們的區別??!

REMOTE_ADDR 屬性是無法設置的?;蛘哒f,設置的不是我們所希望的。

小結:

1、REMOTE_ADDR 不可被修改,但是可能會獲得代理服務器的IP,而不是實際客戶端的IP。
2、通過 HTTP_VIA、HTTP_X_FORWARDED_FOR 我們可以獲得代理服務器所代理的信息,但是這依靠代理服務器的支持。另外,這兩個值可以被修改。我們通過它獲得的信息可能是不真實的。另,HTTP_X_FORWARDED_FOR 的信息可能是一個集合,不含 REMOTE_ADDR 中的代理服務器IP。
沒有一個完美的解決獲得客戶端IP地址的方法,我們只能在上面2個信息中取舍。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品720p| 26uuu亚洲国产精品| 亚洲爱爱爱爱爱| 成人信息集中地欧美| 午夜精品一区二区三区av| 欧美高清电影在线看| 欧美插天视频在线播放| 丝袜亚洲另类欧美重口| 97超级碰碰碰久久久| 5278欧美一区二区三区| 亚洲欧美日韩中文在线| 亚洲成人久久久久| 97精品欧美一区二区三区| 茄子视频成人在线| 性欧美长视频免费观看不卡| 日韩电影中文字幕av| 免费av在线一区| 欧美亚洲免费电影| 国产成人精品在线视频| 91经典在线视频| 日韩av不卡电影| 欧美一级高清免费播放| 欧美激情videoshd| 中文字幕日本欧美| 日本成人在线视频网址| 精品福利在线视频| 日本道色综合久久影院| 日本国产一区二区三区| 日韩视频在线观看免费| 亚洲午夜久久久影院| 国产综合福利在线| 亚洲a级在线播放观看| 91午夜理伦私人影院| 精品国产一区av| 国内精品久久久久伊人av| 深夜成人在线观看| 综合久久五月天| 日韩中文字幕在线| 国产精品爱啪在线线免费观看| 日韩在线视频网| 欧美片一区二区三区| 国产成人一区三区| 亚洲最大的免费| 亚洲精品久久久一区二区三区| 九九久久久久久久久激情| 国产91精品久久久| 日韩av手机在线观看| 欧美午夜宅男影院在线观看| 日韩欧美在线观看| 国产美女久久久| 国产精品视频免费在线观看| 日韩av在线影视| 欧美在线视频免费观看| 欧洲成人免费aa| 国产精品av网站| 亚洲大胆人体在线| 亚洲精品国产精品自产a区红杏吧| 欧美日本高清视频| 成人伊人精品色xxxx视频| 亚洲成人精品久久久| 欧美黑人xxx| 国产精品国产亚洲伊人久久| 成人免费淫片aa视频免费| 亚洲国产精久久久久久| 国产一区二区视频在线观看| 国产精品第10页| 亚洲免费高清视频| 日韩美女av在线| 久久精品国产亚洲一区二区| 91福利视频在线观看| 欧美一级片久久久久久久| 亚洲国产天堂久久国产91| 色久欧美在线视频观看| 92看片淫黄大片看国产片| 91免费的视频在线播放| 欧美激情视频一区二区三区不卡| 97国产真实伦对白精彩视频8| 国产精品久久久久久av| 国产日韩在线看| 欧美中在线观看| 国产精品久久久久久影视| 欧美成人全部免费| 国产精品福利片| 久久久精品国产一区二区| 国产欧美精品久久久| 日韩成人av在线播放| 日韩美女在线观看| 日韩av片免费在线观看| 一二美女精品欧洲| 青草青草久热精品视频在线观看| 97色在线视频观看| 亚洲国产成人精品一区二区| 欧美极品少妇xxxxⅹ裸体艺术| 久久久精品视频成人| 久久综合免费视频| 精品久久久久久久久久国产| 亚洲欧美在线免费观看| 日本精品久久久久久久| 精品视频在线导航| 青青久久av北条麻妃黑人| 日本中文字幕成人| 97视频在线观看播放| 91精品国产91久久久久久久久| 欧美一级视频免费在线观看| 九九久久久久久久久激情| 国产精品一区二区三区在线播放| 美乳少妇欧美精品| 日av在线播放中文不卡| 欧美激情国内偷拍| 久久国产加勒比精品无码| 欧美美女操人视频| 日韩在线观看免费全集电视剧网站| 欧美一区二区三区艳史| 最新国产成人av网站网址麻豆| 久久久人成影片一区二区三区| 大荫蒂欧美视频另类xxxx| 日韩精品中文字幕久久臀| 最近2019年中文视频免费在线观看| 97在线观看免费高清| 欧美高清视频免费观看| 欧美乱大交xxxxx另类电影| 国产精品久久不能| 亚洲va欧美va国产综合久久| 91精品国产91久久久久久不卡| 亚洲免费电影在线观看| 高清欧美性猛交xxxx黑人猛交| 欧美日韩在线第一页| 国产亚洲精品成人av久久ww| 4438全国亚洲精品在线观看视频| 在线日韩精品视频| 欧美日韩国产精品一区二区不卡中文| 国产视频精品自拍| 亚洲精品少妇网址| 亚洲香蕉伊综合在人在线视看| 久久国产精品久久久久| 日韩禁在线播放| 中文字幕日韩欧美在线| 久久激情视频免费观看| 亚洲在线观看视频网站| 欧美富婆性猛交| 欧美精品做受xxx性少妇| 亚洲跨种族黑人xxx| 日韩免费在线视频| 亚洲黄色在线观看| www.日本久久久久com.| 国产成人97精品免费看片| 国产午夜精品视频| 欧美香蕉大胸在线视频观看| 国产一区二区三区欧美| 色婷婷久久av| 久久艳片www.17c.com| 红桃av永久久久| 国产精品视频免费观看www| 国产91精品高潮白浆喷水| 88国产精品欧美一区二区三区| 国产精品美女www| 日韩成人激情在线| 精品国产999| 亚洲成色999久久网站| 欧美成人免费一级人片100| 国产精品一区专区欧美日韩| 久久久久久久一区二区| 亚洲国产日韩欧美在线动漫| 国产精品久久久久高潮|