簡體   English   中英

將ASP.NET(MVC)中的DNS解析為主機名/代理

[英]Resolving DNS in ASP.NET (MVC) to Host Name/Proxy

好吧,我知道這個問題聽起來有點愚蠢。 盡管我找到了正確的答案,但我已經查看了有關此問題的其他一些問題,但結果卻不一致。 我會盡力將其布局。

我有一個問題,我的網站的大量訪問者正在使用...我使用非常寬松的術語,互聯網服務(AOL)來訪問它。 這超出了我的控制范圍。 它是用戶群的很大一部分,我無法阻止它們使用其內置的瀏覽器(源自IE)。

現在,這不是繼承問題。 問題在於,通過瀏覽器訪問的任何網站都將通過其代理之一。 這不會引起任何沖突,但我們需要知道誰是獨特的,誰不是出於某些特定原因。

我安裝了流行的留言板系統,稱為“ Invision電源板”。 它跟蹤人們的IP地址,並具有解析IP的功能。 所以,我可以點擊一個IP,它將“解析”給像這樣的主機。

IP XX.XXX.XX.XXX解析為cache-dtc-ae16.proxy.aol.com

現在我明白了這里發生了什么。 cache-dtc-ae16.proxy.aol.com是代理,所以我不能做太多事情。 我已經同意了。 執行此操作的代碼是在IPB中,我不會說PHP,所以我在那個部門是SOL。

我知道如何獲取用戶的IP地址。

HttpContext.Request.UserHostAddress

我想知道的是......來自IP,如何在C#中“解析”到該代理? 我基本上想設置代碼的特定部分,以拒絕來自具有.aol的代理的任何內容。 在里面。

我想要做的是什么,甚至是可行的還是可能的? 我可能完全錯過了該術語。 相信我理解這么多。

UserHostAddress is the **client's** IP Address

基本上,這是我嘗試過的。

System.Net.Dns.GetHostEntry(System.Net.IPAddress.Parse(HttpContext.Request.UserHostAddress)).Aliases

你想從ip獲取域名嗎? 它看起來像你的回答是這個問題在這里

IPHostEntry IpToDomainName = Dns.GetHostEntry("209.85.129.103");
string HostName = IpToDomainName.HostName; //it returns "fk-in-f103.1e100.net"

這是TCP協議的限制。 該地址是TCP數據包的一部分,據我所知,路由器和交換機以及NAT和代理會更改地址並自行設置。

據我所知,沒有辦法解決它。 代理商的地址和你要的一樣好。

我相信即使是TCP數據包的MAC(物理)地址也將是代理服務器,但是這是值得關注的,盡管不確定您是否可以在ASP.NET運行時獲得該數據包,因為請求可以包含多個TCP數據包。

暫無
暫無

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

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