2017-01-05 13 views
2

を取得:私が欲しいとき、私はそれを使用することができるように私はこのコードを持っているIPとコンピュータ名

localIp = Request.UserHostName 
hostName = DetermineCompName(localIp) 

Session.Add("localIp", localIp) 
Session.Add("hostName", hostName) 

あなたが見ることができるように、私はセッションで2つの変数を置きます。 10台のコンピュータでアプリをテストしたところ、一部のコンピュータではクライアントIPとコンピュータ名が取得されていましたが、それ以外は空になります。

一部のコンピュータでは動作しますが、何が問題なのか分かりません。誰もこれを行う正しい方法を持っていますか?

+0

: System.Net.Dns.GetHostEntry(でRequest.ServerVariables( "REMOTE_ADDR")を)ホスト名 これはASPであると仮定。? IPについて考えると、Dim h As String = System.Net.Dns.GetHostEntry(Request.ServerVariables( "remote_addr"))。AddressList(0)? –

答えて

2

あなたは、単に行うことができますコンピュータ名を取得するには、次の

Dim hostName As String = Environment.MachineName 

か:IPのために

Dim hostName As String = My.Computer.Name 

を、それは少しトリッキーですが、私はあなたがIPv4をしたいと仮定し、あなたが試すことができますこの:

Dim localIp As String 
For Each address As System.Net.IPAddress In System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList 
    If address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then 
     localIp = address.ToString() 
     Exit For 
    End If 
Next 

あなただけをすればことに注意してください

System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0).ToString() 

これはipV6を返します。私が使用したマシンのホスト名の

+0

ありがとうございます。私は試して結果を知らせます – rchongo

関連する問題