我已经知道答案了. 1.因为tcpclient的IP等属性是首保护的,所以可以继承一个tcpclient类来提取 2.可以用反射的方法来提取(reflection) 具体方法是 Public ReadOnly Property ClientIP(ByVal _client As TcpClient) As String Get Dim PublicIP As String = Nothing Try Dim pi As PropertyInfo = _ _client.GetStream.GetType.GetProperty( _ "Socket", BindingFlags.NonPublic Or BindingFlags.Instance) If Not pi Is Nothing Then PublicIP = pi.GetValue(_client.GetStream, Nothing).RemoteEndPoint.ToString.Split(":")(0) End If Catch ex As System.Exception PublicIP = String.Empty End Try Return PublicIP End Get End Property
wzd24(牧野)(衣带渐宽终不悔,为伊消得人憔悴) ( ) 信誉:100 Blog 加为好友 2007-7-3 14:59:58 得分: 0
1.因为tcpclient的IP等属性是首保护的,所以可以继承一个tcpclient类来提取
2.可以用反射的方法来提取(reflection)
具体方法是
Public ReadOnly Property ClientIP(ByVal _client As TcpClient) As String
Get
Dim PublicIP As String = Nothing
Try
Dim pi As PropertyInfo = _
_client.GetStream.GetType.GetProperty( _
"Socket", BindingFlags.NonPublic Or BindingFlags.Instance)
If Not pi Is Nothing Then
PublicIP = pi.GetValue(_client.GetStream, Nothing).RemoteEndPoint.ToString.Split(":")(0)
End If
Catch ex As System.Exception
PublicIP = String.Empty
End Try
Return PublicIP
End Get
End Property
可以通过tcpclient.Socket.RemoteEndPoint来获取客户端的IP地址!================================================================
tcpclient 好像没有这个方法.
我用的是VB.net 是缺少引用么
tcpclient.Client.RemoteEndPoint