2010-12-16 6 views
0

申し訳ありませんが、この質問はちょっと馬鹿だと思います。私はそれについての他のいくつかの質問を見てきました。私は正しい答えを見つけていますが、矛盾した結果を得ています。私はできるだけ明らかにそれをレイアウトしようとします。ASP.NET(MVC)のDNSをホスト名/プロキシに解決する

私のサイトへの訪問者の多数がaを使用している問題があります...私は非常にゆるやかなインターネットサービス(AOL)という用語を使用してそれにアクセスします。これは私がコントロールできないものです。それはユーザベースの大部分であり、IE(IEから派生した)に組み込まれたブラウザを使用することを止めることはできません。

今、これは継承の問題ではありません。問題は、ブラウザを介してアクセスされたサイトがいずれかのプロキシを通過することです。これは矛盾を引き起こすものではありませんが、私たちは誰が何かユニークで誰かが何らかの理由で誰であるかを知る必要があります。

私は、 "Invision Power Board"と呼ばれる一般的なメッセージボードシステムをインストールしています。人のIPアドレスを追跡し、IPを解決する機能があります。だから私はIPをクリックすることができ、それは..のようなホストに「解決する」。

IP XX.XXX.XX.XXXcache-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 

答えて

2

あなたはIPからドメイン名を取得しようとしている?してみてくださいあなたの答えはhere

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

これはTCPプロトコルの制限です。アドレスはTCPパケットの一部であり、私が知る限り、ルータとスイッチ、NATとプロキシはアドレスを変更して自分自身を置く。

私が知る限り、その周りに道はありません。プロキシのアドレスはあなたが得るほど良いです。

私は、TCPパケットのMAC(物理)アドレスもプロキシになると信じていますが、要求が複数のTCPパケットに来る可能性があるため、ASP.NETランタイムで取得できるかどうかはわかりません。

+0

が私を許し、この質問にあるよう に見え、私は新人プログラマだと(まだのIoC/DI/ORMで立ち往生し、その上で作業)ネットワークの少しを知っています。私はあなたが言っていることを正確に理解していません。あなたは「遅らせて」話すことができますか? – Ciel

+0

まあ、あなたがしていることは正しいですが、私は気づいていないので少し無益です(しかし、他の誰かがあり、私は解決策を知りたいと思っています)**絶対的な確信をもって、ユーザーの住所'HttpContext.Request.UserHostAddress'を使うだけです。それがうまくいくと - 恐れます。他の人たちもコメントしてくれるのを待ってみましょう。多分彼らは方法を知っています。 – Aliostad

+0

どういうわけか、IPBソフトウェアはそれを行うことができるので、私はそれができることを知っています*。私はちょうどC#でそれを行う方法を知らない。 – Ciel

関連する問題