2011-12-16 29 views
1

私は通信にHttpWebRequestを使用しています。それはウェブサイトのIPアドレス(専用のIP)サーバーのIPを取得することは可能です。 Context.Request.ServerVariable( "Remote_Addr")を使用すると、サーバipだけが返されます。 しかし私はウェブサイトのIPアドレスが必要です。例Webサイトを取得する専用のIPアドレスを使用してASP.NET

については

3クライアントのウェブサイトがありますが、私のサイトには、HttpWebRequestを送ります。それぞれ専用のIPアドレスを持っています。

私のウェブサイトこのリクエストを受け取り、何らかの作業をしてから応答します。

クライアントのコーディング例は、HttpWebRequestのを送信:のHttpHandlerをコードする

Dim uri As New Uri("http://www.somewebsite.com/somepage.ashx?username=client1&password=123456") 
If (uri.Scheme = uri.UriSchemeHttp) Then 
    Dim wrequest As HttpWebRequest = HttpWebRequest.Create(uri) 
    wrequest.Method = WebRequestMethods.Http.Get 
    Dim wresponse As HttpWebResponse = wrequest.GetResponse()  
    Dim reader As New StreamReader(wresponse.GetResponseStream()) 
    Dim tmp As String = reader.ReadToEnd() 
wresponse.Close() 
End If 

例:

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
Dim remoteIP As String = context.Request.ServerVariables("REMOTE_ADDR") 
If remoteIP = "client1ip" Then 
    Dim ref As String = Trim(context.Request.QueryString("username")) 
    Dim number As String = Trim(context.Request.QueryString("password")) 
    'do some work 
Else 
    context.Response.Write("Access Denied") 
End If 

End Subの

これはコーディング私の例です。ここにremoteIPリターンホスティングプロバイダサーバーIPが、私はウェブサイトのIPアドレスが必要です。

httphandlerでhttpcontextを使用してウェブサイトのIPアドレスを取得することは可能です。

+0

あなたは明らかにできますか?ドメイン名にヒットしたときにクライアントアプリケーションが接続しているIPアドレスを取得したいのですか? – Martin

+0

私のクライアントはhttpwebrequestを使って私のサイトにリクエストを送信しています。どのようにクライアントが私のサイトに送信するこのリクエストを見つけることができますか?httpwebrequestクラスからIPまたはドメイン名を取得する方法を予測する方法を教えてください。可能です? – user1102679

+0

あなたのサイトに接続しているクライアントマシンのWebサイトとIPアドレスを取得したいですか? – Martin

答えて

0

これはあなたが探していることを行うはずです。それはあなたがそれが聞いているIPアドレスを与えるべきウェブサイトのホスト名にDNSルックアップを行います。

string dnsHostname = "yourwebsite.com"; 
IPAddress[] addresslist = Dns.GetHostAddresses(dnsHostname); 

foreach (IPAddress theaddress in addresslist) 
{ 
    Console.WriteLine(theaddress.ToString()); 
} 

おそらく、配列の最初の結果が必要です。

あなたがこれまでに述べてきたものに基づいて
+0

httpwebrequestからクライアントのウェブサイトアドレスを取得するにはどうすればよいですか? – user1102679

+0

私はdnshostnameであるクライアントのWebサイトのIPアドレスまたはWebサイト名が必要ですか? httpwebrequestクラスから取得することが可能です – user1102679

+0

申し訳ありません...私はあなたが求めていたものを誤解しました。あなたがウェブサイトの静的IPを探していると言ったとき、私はあなたのサービスに接続していたウェブサイトについて話していることを理解していませんでした。私はここで何が起こっているかについてもっと情報が必要だと思う、私の次の考えは、以下のマーティンの答えは正しいと思っただろうが、すでに言及しているようだ。どちらも正しくないと思われる。 –

0

、あなたが探している変数は次のとおりです。

Request.UserHostAddress 
Request.UserHostName 

問題彼らはプロキシを使用している場合、あなたは独自のIPを取得していない可能性があることになりますそれ以外の場合は、必要なものをそれらから得ることができるはずです。もっと今あなたの質問を理解した後

+0

私はすでにこれを試しているが、訪問者の住所。私はジェネリックハンドラページを使用してクライアントのWebサイト要求を処理します。 httpcontextには、クライアント(ここではクライアントはクライアントのWebサイトを意味します)のIPアドレスを取得できることを使用して、要求および応答オブジェクトがあります。訪問者のIPアドレスではありません。 – user1102679

+0

あなたはヴィスターを別のウェブサイトに訪れることはできません。技術的にはあなたのウェブサイトへの唯一の接続はあなたに接続しているウェブサイトなので、ユーザーのIPアドレスを渡すことができなければ、 –

0

...

私はあなたがvistorあなたのサイトに接続され、この他のウェブサイトを得ることができるとしているとは思いません。技術的にあなたのウェブサイトへの唯一の接続はあなたに接続しているウェブサイトなので、ユーザーのIPアドレスを渡すことができなければ、あなたはそれにさらされることはありません

関連する問題