C# 将ASP.NET(MVC)中的DNS解析为主机名/代理

C# 将ASP.NET(MVC)中的DNS解析为主机名/代理,c#,dns,ip,hostname,C#,Dns,Ip,Hostname,好吧,这个问题听起来有点愚蠢,我知道。我已经看了一些关于它的其他问题,我得到了不一致的结果,尽管我找到了正确的答案。我会尽量把它说清楚 我有一个问题,我的网站的大量访问者都在使用一个…我使用非常流行的术语,互联网服务(AOL)来访问它。这是我无法控制的。它是用户库的很大一部分,我无法阻止他们使用它的内置浏览器(源于IE) 现在,这不是继承问题。问题是,通过浏览器访问的任何站点都会通过它们的一个代理。这不会引起任何冲突,但我们需要知道谁是独一无二的,谁不是因为某些特定的原因 我安装了一个叫做“In

好吧,这个问题听起来有点愚蠢,我知道。我已经看了一些关于它的其他问题,我得到了不一致的结果,尽管我找到了正确的答案。我会尽量把它说清楚

我有一个问题,我的网站的大量访问者都在使用一个…我使用非常流行的术语,互联网服务(AOL)来访问它。这是我无法控制的。它是用户库的很大一部分,我无法阻止他们使用它的内置浏览器(源于IE)

现在,这不是继承问题。问题是,通过浏览器访问的任何站点都会通过它们的一个代理。这不会引起任何冲突,但我们需要知道谁是独一无二的,谁不是因为某些特定的原因

我安装了一个叫做“Invision Power board”的流行留言板系统。它跟踪人们的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

这是TCP协议的一个限制。地址是TCP数据包的一部分,据我所知,路由器、交换机、NAT和代理会更改地址并放置自己的地址

据我所知,这是没有办法的。代理人的地址是你能得到的最好的地址

我相信,即使TCP数据包的MAC(物理)地址也将是代理的,但这是一个值得注意的问题,尽管不确定您是否可以在ASP.NET运行时获得它,因为一个请求可能来自多个TCP数据包。

试试这个


您正在尝试从ip获取域名吗? 看起来你的答案就在这个问题上


请原谅,我是一名新手程序员,对网络知之甚少(正在进行这方面的工作,仍然停留在IoC/DI/ORM中)。我不太明白你在说什么。你能翻译成“弱智”语言吗?好吧,你所做的是正确的,但有点徒劳无益,因为我不知道(但可能是其他人知道,我很想知道解决方案)任何可以绝对确定地识别用户地址的方法。只需使用
HttpContext.Request.UserHostAddress
就可以了——我担心。让我们等待其他人的评论,也许他们知道一种方法。不知何故,IPB软件能够做到这一点,所以我知道这是可以做到的。我只是不知道怎么用C做……啊!我已经解决了!代码一直都是对的。我只是没有通过代理。它被禁用了!
IPHostEntry IpToDomainName = Dns.GetHostEntry("209.85.129.103");
string HostName = IpToDomainName.HostName; //it returns "fk-in-f103.1e100.net"