求助 :关于从已经连接的套接字里获得IP的问题。请大神指点
如何根据从已经连接的套接字里获得真实IP服务端在一路由后面。
通过Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char")
$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet
Else
$aRet = 0
EndIf
$sockaddr = 0
Return $aRet
EndFunc ;==>SocketToIP
可以获取到IP。但是 是路由的IP。并不是真正的客户端连接IP。
请高手指点下。 晕大神都睡了么 大神还没起来么 顶起 不要塌了 不可能吧,你连接的实际上就是路由器,由路由器再转发到服务器的,地址在路由器上,除非你可以侵入路由器查看。
页:
[1]