天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

asp.net 獲取IP的相關(guān)資料

ASP.NET 獲得客戶(hù)端的IP,最常見(jiàn)的是使用下述代碼:
復(fù)制代碼 代碼如下:
string user_IP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

對(duì)于了解代理服務(wù)器情況的人,我們會(huì)知道,如果用戶(hù)使用了代理服務(wù)器,上述代碼獲得的是代理服務(wù)器的IP地址;如果用戶(hù)使用了多個(gè)代理服務(wù)器,則是到達(dá)服務(wù)器的最后一個(gè)代理服務(wù)器的IP地址。

REMOTE_ADDR 說(shuō)明:

訪問(wèn)客戶(hù)端的 IP 地址。
此項(xiàng)信息用戶(hù)不可以修改。
如果真的給改了的話(huà),你也和服務(wù)器連接不了了,服務(wù)器就是按照這個(gè)來(lái)與客戶(hù)端建立連接并進(jìn)行通訊的。實(shí)際我測(cè)試修改這個(gè) ServerVariables , 一點(diǎn)效果都沒(méi)有。仍然獲得是實(shí)際的值。
另: Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"] 實(shí)際是同一個(gè)值。

如何繞過(guò)代理服務(wù)器獲得用戶(hù)真實(shí)的IP地址呢? 這時(shí)候我們一般是類(lèi)似如下的代碼(這里我簡(jiǎn)單起見(jiàn),沒(méi)有作一些邊界判斷)

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"];
}
這樣就足夠了么? 這樣是有問(wèn)題的,HTTP_X_FORWARDED_FOR 、HTTP_VIA 是可以被冒名的。如果正好這里有SQL注入問(wèn)題的話(huà),那可非常嚴(yán)重了。

下面我們就來(lái)具體看HTTP_VIA 和HTTP_X_FORWARDED_FOR 這兩個(gè) ServerVariables。

HTTP_VIA

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

HTTP_X_FORWARDED_FOR

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

需要注意的,HTTP_X_FORWARDED_FOR 的值,并不一定是只有一個(gè)IP地址,下面的信息也是可能的,每行一條記錄。下面數(shù)據(jù)取材于CSDN 實(shí)際的數(shù)據(jù)。
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


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

對(duì)于這三個(gè)值:REMOTE_ADDR、HTTP_VIA、HTTP_X_FORWARDED_FOR 來(lái)說(shuō),可以分以下五種情況:

一、沒(méi)有使用代理服務(wù)器的情況:

REMOTE_ADDR = 您的 IP
HTTP_VIA = 沒(méi)數(shù)值或不顯示
HTTP_X_FORWARDED_FOR = 沒(méi)數(shù)值或不顯示

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

REMOTE_ADDR = 最后一個(gè)代理服務(wù)器 IP
HTTP_VIA = 代理服務(wù)器 IP
HTTP_X_FORWARDED_FOR = 您的真實(shí) IP ,經(jīng)過(guò)多個(gè)代理服務(wù)器時(shí),這個(gè)值類(lèi)似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

這類(lèi)代理服務(wù)器還是將您的信息轉(zhuǎn)發(fā)給您的訪問(wèn)對(duì)象,無(wú)法達(dá)到隱藏真實(shí)身份的目的。

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

REMOTE_ADDR = 最后一個(gè)代理服務(wù)器 IP
HTTP_VIA = 代理服務(wù)器 IP
HTTP_X_FORWARDED_FOR = 代理服務(wù)器 IP ,經(jīng)過(guò)多個(gè)代理服務(wù)器時(shí),這個(gè)值類(lèi)似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

隱藏了您的真實(shí)IP,但是向訪問(wèn)對(duì)象透露了您是使用代理服務(wù)器訪問(wèn)他們的。

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

REMOTE_ADDR = 代理服務(wù)器 IP
HTTP_VIA = 代理服務(wù)器 IP
HTTP_X_FORWARDED_FOR = 隨機(jī)的 IP ,經(jīng)過(guò)多個(gè)代理服務(wù)器時(shí),這個(gè)值類(lèi)似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

告訴了訪問(wèn)對(duì)象您使用了代理服務(wù)器,但編造了一個(gè)虛假的隨機(jī)IP代替您的真實(shí)IP欺騙它。

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

REMOTE_ADDR = 代理服務(wù)器 IP
HTTP_VIA = 沒(méi)數(shù)值或不顯示
HTTP_X_FORWARDED_FOR = 沒(méi)數(shù)值或不顯示 ,經(jīng)過(guò)多個(gè)代理服務(wù)器時(shí),這個(gè)值類(lèi)似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

完全用代理服務(wù)器的信息替代了您的所有信息,就象您就是完全使用那臺(tái)代理服務(wù)器直接訪問(wèn)對(duì)象。

服務(wù)器端的 UserIP.ASPX 頁(yè)面的代碼:
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e){
StringBuilder info = new StringBuilder(); // 我們關(guān)注的三個(gè) 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 />");
// 其他有參考價(jià)值的 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();
}
客戶(hù)端發(fā)送請(qǐng)求的代碼:
[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();
}

測(cè)試的結(jié)果中的重要信息:測(cè)試的結(jié)果數(shù)據(jù)比較多,我這里只羅列了幾個(gè)重要的。

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 />

上面測(cè)試代碼需要注意的是:

我們?cè)诳蛻?hù)端代碼中設(shè)置了三個(gè)HTTP頭信息,分別是:

REMOTE_ADDR、VIA、X_FORWARDED_FOR
實(shí)際在服務(wù)器段,這三個(gè)值應(yīng)該通過(guò)下面三個(gè)屬性來(lái)讀取

HTTP_REMOTE_ADDR、HTTP_VIA 、HTTP_X_FORWARDED_FOR 注意他們的區(qū)別!!

REMOTE_ADDR 屬性是無(wú)法設(shè)置的。或者說(shuō),設(shè)置的不是我們所希望的。

小結(jié):

1、REMOTE_ADDR 不可被修改,但是可能會(huì)獲得代理服務(wù)器的IP,而不是實(shí)際客戶(hù)端的IP。
2、通過(guò) HTTP_VIA、HTTP_X_FORWARDED_FOR 我們可以獲得代理服務(wù)器所代理的信息,但是這依靠代理服務(wù)器的支持。另外,這兩個(gè)值可以被修改。我們通過(guò)它獲得的信息可能是不真實(shí)的。另,HTTP_X_FORWARDED_FOR 的信息可能是一個(gè)集合,不含 REMOTE_ADDR 中的代理服務(wù)器IP。
沒(méi)有一個(gè)完美的解決獲得客戶(hù)端IP地址的方法,我們只能在上面2個(gè)信息中取舍。

AspNet技術(shù)asp.net 獲取IP的相關(guān)資料,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 99热这里只有是精品 | 伊人精品在线 | 成年AV动漫 | 国产AV天堂亚洲AV麻豆 | 久久偷拍国2017 | 双性精跪趴灌满h室友4p | 全球真实小U女视频合集 | 欧美区 bt| 无限好资源免费观看 | 俄罗斯aaaa一级毛片 | 亚洲成人黄色片 | 亚州视频一区 | 伊人大香线蕉精品在线播放 | 女张腿男人桶羞羞漫画 | 国产激情视频在线 | 我们中文在线观看免费完整版 | 公么我好爽再深一点 | 俄罗斯搜索引擎Yandex推广入口 | 肉动漫无修3D在线观看 | 91传媒蜜桃香蕉在线观看 | 最新国自产拍天天更新 | 欧美日韩精品不卡在线观看 | 最新国产在线视频在线 | 欧美白妞大战非洲大炮 | 亚洲AV精品无码喷水直播间 | 乌克兰成人性色生活片 | 国内精品久久久久久久999下 | 国产精品99久久久久久AV色戒 | 久久99re2在线视频精品 | 全免费a级毛片免费看 | 外国三级片名 | 日日夜夜狠狠干 | 高清国产免费观看视频在线 | 中文字幕久久熟女人妻AV免费 | 青青久在线视频免费观看 | 高冷师尊被CAO成SAO货 | 亚州AV人片一区二区三区99久 | 亚洲精品视频久久 | 中国毛片网 | 国产国产乱老熟视频网站 | 性夜影院爽黄A爽免费动漫 性夜夜春夜夜爽AA片A |