【问题标题】:Resolving DNS in ASP.NET (MVC) to Host Name/Proxy将 ASP.NET (MVC) 中的 DNS 解析为主机名/代理
【发布时间】:2011-05-26 13:51:14
【问题描述】:

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

我有一个问题,我的网站的大量访问者正在使用...我使用非常松散的流行术语,互联网服务 (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

【问题讨论】:

    标签: c# dns ip hostname


    【解决方案1】:

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

    据我所知,没有办法绕过它。代理的地址和你得到的一样好。

    我相信即使是 TCP 数据包的 MAC(物理)地址也将是代理的,但这是需要查看的内容,尽管不确定是否可以在 ASP.NET 运行时中获得它,因为请求可以来自多个 TCP 数据包。

    【讨论】:

    • 原谅我,我是一个菜鸟程序员,对网络知之甚少(在这方面工作,仍然停留在 IoC/DI/ORM 中)。我不明白你在说什么。你能翻译成“迟钝”说话吗?
    • 嗯,你所做的是正确的,但它有点徒劳,因为我不知道(但也许其他人是,我很想知道解决方案) any 意味着您可以绝对确定地识别用户的地址。只需使用HttpContext.Request.UserHostAddress 就可以了 - 恐怕。我们就等着其他人也发表评论吧,也许他们知道方法。
    • 不知何故,IPB 软件可以做到,所以我知道可以做到。我只是不知道如何在 C# 中做到这一点......
    • 啊!我已经解决了!代码一直都是正确的。我只是没有通过代理。它被禁用了!
    【解决方案2】:
    【解决方案3】:

    您是否尝试从 ip 获取域名? 看起来你的答案就在这个问题here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-06
      • 2021-10-08
      • 2012-02-27
      • 2019-04-30
      • 1970-01-01
      • 2019-01-24
      • 2021-07-17
      • 1970-01-01
      相关资源
      最近更新 更多